//
//  RACSignalStartExamples.h
//  ReactiveCocoa
//
//  Created by Josh Abernathy on 5/29/13.
//  Copyright (c) 2013 GitHub, Inc. All rights reserved.
//

#import <Foundation/Foundation.h>

extern NSString * const RACSignalStartSharedExamplesName;

// The signal to test, created by some +start...: variation.
extern NSString * const RACSignalStartSignal;

// An NSArray of the values which the signal should be expected to send.
extern NSString * const RACSignalStartExpectedValues;

// The scheduler on which the signal should be expected to send values.
extern NSString * const RACSignalStartExpectedScheduler;
