<|start_filename|>CorePlot/CPTAxisLabel.h<|end_filename|>
#import "CPTDefinitions.h"

/// @file

@class CPTAxisLabel;
@class CPTLayer;
@class CPTTextStyle;

/**
 *  @brief A set of CPTAxisLabel objects.
 **/
typedef NSSet<CPTAxisLabel *> CPTAxisLabelSet;

/**
 *  @brief A mutable set of CPTAxisLabel objects.
 **/
typedef NSMutableSet<CPTAxisLabel *> CPTMutableAxisLabelSet;

@interface CPTAxisLabel : NSObject<NSCoding, NSSecureCoding>

@property (nonatomic, readwrite, strong, nullable) CPTLayer *contentLayer;
@property (nonatomic, readwrite, assign) CGFloat offset;
@property (nonatomic, readwrite, assign) CGFloat rotation;
@property (nonatomic, readwrite, assign) CPTAlignment alignment;
@property (nonatomic, readwrite, strong, nonnull) NSNumber *tickLocation;

/// @name Initialization
/// @{
-(nonnull instancetype)initWithText:(nullable NSString *)newText textStyle:(nullable CPTTextStyle *)style;
-(nonnull instancetype)initWithContentLayer:(nonnull CPTLayer *)layer NS_DESIGNATED_INITIALIZER;
-(nullable instancetype)initWithCoder:(nonnull NSCoder *)decoder NS_DESIGNATED_INITIALIZER;
/// @}

/// @name Layout
/// @{
-(void)positionRelativeToViewPoint:(CGPoint)point forCoordinate:(CPTCoordinate)coordinate inDirection:(CPTSign)direction;
-(void)positionBetweenViewPoint:(CGPoint)firstPoint andViewPoint:(CGPoint)secondPoint forCoordinate:(CPTCoordinate)coordinate inDirection:(CPTSign)direction;
/// @}

@end


<|start_filename|>CorePlot/CPTColor.h<|end_filename|>
#import "CPTPlatformSpecificDefines.h"

@interface CPTColor : NSObject<NSCopying, NSCoding, NSSecureCoding>

@property (nonatomic, readonly, nonnull) CGColorRef cgColor;
@property (nonatomic, readonly, getter = isOpaque) BOOL opaque;

#if TARGET_OS_OSX
@property (nonatomic, readonly, nonnull) NSColor *nsColor;
#elif TARGET_OS_SIMULATOR || TARGET_OS_IPHONE
@property (nonatomic, readonly, nonnull) UIColor *uiColor;
#endif
@property (nonatomic, readonly, nonnull) CPTNativeColor *nativeColor;

/// @name Standard Colors
/// @{
+(nonnull instancetype)clearColor;
+(nonnull instancetype)whiteColor;
+(nonnull instancetype)lightGrayColor;
+(nonnull instancetype)grayColor;
+(nonnull instancetype)darkGrayColor;
+(nonnull instancetype)blackColor;
+(nonnull instancetype)redColor;
+(nonnull instancetype)greenColor;
+(nonnull instancetype)blueColor;
+(nonnull instancetype)cyanColor;
+(nonnull instancetype)yellowColor;
+(nonnull instancetype)magentaColor;
+(nonnull instancetype)orangeColor;
+(nonnull instancetype)purpleColor;
+(nonnull instancetype)brownColor;
/// @}

/// @name Factory Methods
/// @{
+(nonnull instancetype)colorWithCGColor:(nonnull CGColorRef)newCGColor;
+(nonnull instancetype)colorWithComponentRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
+(nonnull instancetype)colorWithGenericGray:(CGFloat)gray;

#if TARGET_OS_OSX
+(nonnull instancetype)colorWithNSColor:(nonnull NSColor *)newNSColor;
#elif TARGET_OS_SIMULATOR || TARGET_OS_IPHONE
+(nonnull instancetype)colorWithUIColor:(nonnull UIColor *)newUIColor;
#endif
+(nonnull instancetype)colorWithNativeColor:(nonnull CPTNativeColor *)newColor;

/// @}

/// @name Initialization
/// @{
-(nonnull instancetype)initWithCGColor:(nonnull CGColorRef)cgColor NS_DESIGNATED_INITIALIZER;
-(nonnull instancetype)initWithComponentRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
-(nullable instancetype)initWithCoder:(nonnull NSCoder *)decoder NS_DESIGNATED_INITIALIZER;

#if TARGET_OS_OSX
-(nonnull instancetype)initWithNSColor:(nonnull NSColor *)newNSColor NS_DESIGNATED_INITIALIZER;
#elif TARGET_OS_SIMULATOR || TARGET_OS_IPHONE
-(nonnull instancetype)initWithUIColor:(nonnull UIColor *)newUIColor NS_DESIGNATED_INITIALIZER;
#endif
-(nonnull instancetype)initWithNativeColor:(nonnull CPTNativeColor *)newColor;

-(nonnull instancetype)colorWithAlphaComponent:(CGFloat)alpha;
/// @}

@end


<|start_filename|>CorePlot/CPTAnimationPeriod.h<|end_filename|>
#import "CPTAnimation.h"

@class CPTAnimationOperation;
@class CPTPlotRange;

@interface CPTAnimationPeriod : NSObject

/// @name Timing Values
/// @{
@property (nonatomic, readwrite, copy, nullable) NSValue *startValue;
@property (nonatomic, readwrite, copy, nullable) NSValue *endValue;
@property (nonatomic, readonly, nullable) Class valueClass;
@property (nonatomic, readwrite) CGFloat duration;
@property (nonatomic, readwrite) CGFloat delay;
@property (nonatomic, readonly) CGFloat startOffset;
/// @}

/// @name Factory Methods
/// @{
+(nonnull instancetype)periodWithStart:(CGFloat)aStart end:(CGFloat)anEnd duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
+(nonnull instancetype)periodWithStartPoint:(CGPoint)aStartPoint endPoint:(CGPoint)anEndPoint duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
+(nonnull instancetype)periodWithStartSize:(CGSize)aStartSize endSize:(CGSize)anEndSize duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
+(nonnull instancetype)periodWithStartRect:(CGRect)aStartRect endRect:(CGRect)anEndRect duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
+(nonnull instancetype)periodWithStartDecimal:(NSDecimal)aStartDecimal endDecimal:(NSDecimal)anEndDecimal duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
+(nonnull instancetype)periodWithStartNumber:(nullable NSNumber *)aStartNumber endNumber:(nonnull NSNumber *)anEndNumber duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
+(nonnull instancetype)periodWithStartPlotRange:(nonnull CPTPlotRange *)aStartPlotRange endPlotRange:(nonnull CPTPlotRange *)anEndPlotRange duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
/// @}

/// @name Initialization
/// @{
-(nonnull instancetype)initWithStart:(CGFloat)aStart end:(CGFloat)anEnd duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
-(nonnull instancetype)initWithStartPoint:(CGPoint)aStartPoint endPoint:(CGPoint)anEndPoint duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
-(nonnull instancetype)initWithStartSize:(CGSize)aStartSize endSize:(CGSize)anEndSize duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
-(nonnull instancetype)initWithStartRect:(CGRect)aStartRect endRect:(CGRect)anEndRect duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
-(nonnull instancetype)initWithStartDecimal:(NSDecimal)aStartDecimal endDecimal:(NSDecimal)anEndDecimal duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
-(nonnull instancetype)initWithStartNumber:(nullable NSNumber *)aStartNumber endNumber:(nonnull NSNumber *)anEndNumber duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
-(nonnull instancetype)initWithStartPlotRange:(nonnull CPTPlotRange *)aStartPlotRange endPlotRange:(nonnull CPTPlotRange *)anEndPlotRange duration:(CGFloat)aDuration withDelay:(CGFloat)aDelay;
/// @}

@end

#pragma mark -

/** @category CPTAnimationPeriod(AbstractMethods)
 *  @brief CPTAnimationPeriod abstract methods—must be overridden by subclasses
 **/
@interface CPTAnimationPeriod(AbstractMethods)

/// @name Initialization
/// @{
-(void)setStartValueFromObject:(nonnull id)boundObject propertyGetter:(nonnull SEL)boundGetter;
/// @}

/// @name Interpolation
/// @{
-(nonnull NSValue *)tweenedValueForProgress:(CGFloat)progress;
/// @}

/// @name Comparison
/// @{
-(BOOL)canStartWithValueFromObject:(nonnull id)boundObject propertyGetter:(nonnull SEL)boundGetter;
/// @}

@end

#pragma mark -

@interface CPTAnimation(CPTAnimationPeriodAdditions)

/// @name CGFloat Property Animation
/// @{
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property from:(CGFloat)from to:(CGFloat)to duration:(CGFloat)duration withDelay:(CGFloat)delay animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property from:(CGFloat)from to:(CGFloat)to duration:(CGFloat)duration animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property from:(CGFloat)from to:(CGFloat)to duration:(CGFloat)duration;
/// @}

/// @name CGPoint Property Animation
/// @{
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromPoint:(CGPoint)from toPoint:(CGPoint)to duration:(CGFloat)duration withDelay:(CGFloat)delay animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromPoint:(CGPoint)from toPoint:(CGPoint)to duration:(CGFloat)duration animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromPoint:(CGPoint)from toPoint:(CGPoint)to duration:(CGFloat)duration;
/// @}

/// @name CGSize Property Animation
/// @{
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromSize:(CGSize)from toSize:(CGSize)to duration:(CGFloat)duration withDelay:(CGFloat)delay animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromSize:(CGSize)from toSize:(CGSize)to duration:(CGFloat)duration animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromSize:(CGSize)from toSize:(CGSize)to duration:(CGFloat)duration;
/// @}

/// @name CGRect Property Animation
/// @{
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromRect:(CGRect)from toRect:(CGRect)to duration:(CGFloat)duration withDelay:(CGFloat)delay animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromRect:(CGRect)from toRect:(CGRect)to duration:(CGFloat)duration animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromRect:(CGRect)from toRect:(CGRect)to duration:(CGFloat)duration;
/// @}

/// @name NSDecimal Property Animation
/// @{
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromDecimal:(NSDecimal)from toDecimal:(NSDecimal)to duration:(CGFloat)duration withDelay:(CGFloat)delay animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromDecimal:(NSDecimal)from toDecimal:(NSDecimal)to duration:(CGFloat)duration animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromDecimal:(NSDecimal)from toDecimal:(NSDecimal)to duration:(CGFloat)duration;
/// @}

/// @name NSNumber Property Animation
/// @{
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromNumber:(nullable NSNumber *)from toNumber:(nonnull NSNumber *)to duration:(CGFloat)duration withDelay:(CGFloat)delay animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromNumber:(nullable NSNumber *)from toNumber:(nonnull NSNumber *)to duration:(CGFloat)duration animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromNumber:(nullable NSNumber *)from toNumber:(nonnull NSNumber *)to duration:(CGFloat)duration;
/// @}

/// @name CPTPlotRange Property Animation
/// @{
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromPlotRange:(nonnull CPTPlotRange *)from toPlotRange:(nonnull CPTPlotRange *)to duration:(CGFloat)duration withDelay:(CGFloat)delay animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromPlotRange:(nonnull CPTPlotRange *)from toPlotRange:(nonnull CPTPlotRange *)to duration:(CGFloat)duration animationCurve:(CPTAnimationCurve)animationCurve delegate:(nullable id<CPTAnimationDelegate>)delegate;
+(nonnull CPTAnimationOperation *)animate:(nonnull id)object property:(nonnull NSString *)property fromPlotRange:(nonnull CPTPlotRange *)from toPlotRange:(nonnull CPTPlotRange *)to duration:(CGFloat)duration;
/// @}

@end


<|start_filename|>CorePlot/_CPTXYTheme.h<|end_filename|>
#import "CPTTheme.h"

@interface _CPTXYTheme : CPTTheme

@end


<|start_filename|>CorePlot/CPTGridLines.h<|end_filename|>
#import "CPTLayer.h"

@class CPTAxis;

@interface CPTGridLines : CPTLayer

@property (nonatomic, readwrite, cpt_weak_property, nullable) CPTAxis *axis;
@property (nonatomic, readwrite) BOOL major;

@end


<|start_filename|>CorePlot/CPTLegendEntry.h<|end_filename|>
#import "CPTDefinitions.h"

/// @file

@class CPTLegendEntry;
@class CPTPlot;
@class CPTTextStyle;

/**
 *  @brief An array of CPTLegendEntry objects.
 **/
typedef NSArray<CPTLegendEntry *> CPTLegendEntryArray;

/**
 *  @brief A mutable array of CPTLegendEntry objects.
 **/
typedef NSMutableArray<CPTLegendEntry *> CPTMutableLegendEntryArray;

@interface CPTLegendEntry : NSObject<NSCoding, NSSecureCoding>

/// @name Plot Info
/// @{
@property (nonatomic, readwrite, cpt_weak_property, nullable) CPTPlot *plot;
@property (nonatomic, readwrite, assign) NSUInteger index;
/// @}

/// @name Formatting
/// @{
@property (nonatomic, readwrite, strong, nullable) CPTTextStyle *textStyle;
/// @}

/// @name Layout
/// @{
@property (nonatomic, readwrite, assign) NSUInteger row;
@property (nonatomic, readwrite, assign) NSUInteger column;
@property (nonatomic, readonly) CGSize titleSize;
/// @}

/// @name Drawing
/// @{
-(void)drawTitleInRect:(CGRect)rect inContext:(nonnull CGContextRef)context scale:(CGFloat)scale;
/// @}

@end


<|start_filename|>CorePlot/CPTTheme.h<|end_filename|>
#import "CPTDefinitions.h"

/**
 *  @brief Theme name type.
 **/
typedef NSString *CPTThemeName cpt_swift_struct;

/// @ingroup themeNames
/// @{
extern CPTThemeName __nonnull const kCPTDarkGradientTheme; ///< A graph theme with dark gray gradient backgrounds and light gray lines.
extern CPTThemeName __nonnull const kCPTPlainBlackTheme;   ///< A graph theme with black backgrounds and white lines.
extern CPTThemeName __nonnull const kCPTPlainWhiteTheme;   ///< A graph theme with white backgrounds and black lines.
extern CPTThemeName __nonnull const kCPTSlateTheme;        ///< A graph theme with colors that match the default iPhone navigation bar, toolbar buttons, and table views.
extern CPTThemeName __nonnull const kCPTStocksTheme;       ///< A graph theme with a gradient background and white lines.
/// @}

@class CPTGraph;
@class CPTPlotAreaFrame;
@class CPTAxisSet;
@class CPTMutableTextStyle;

@interface CPTTheme : NSObject<NSCoding, NSSecureCoding>

@property (nonatomic, readwrite, strong, nullable) Class graphClass;

/// @name Theme Management
/// @{
+(void)registerTheme:(nonnull Class)themeClass;
+(nullable NSArray<Class> *)themeClasses;
+(nullable instancetype)themeNamed:(nullable CPTThemeName)themeName;
+(nonnull CPTThemeName)name;
/// @}

/// @name Theme Usage
/// @{
-(void)applyThemeToGraph:(nonnull CPTGraph *)graph;
/// @}

@end

/** @category CPTTheme(AbstractMethods)
 *  @brief CPTTheme abstract methods—must be overridden by subclasses
 **/
@interface CPTTheme(AbstractMethods)

/// @name Theme Usage
/// @{
-(nullable id)newGraph;

-(void)applyThemeToBackground:(nonnull CPTGraph *)graph;
-(void)applyThemeToPlotArea:(nonnull CPTPlotAreaFrame *)plotAreaFrame;
-(void)applyThemeToAxisSet:(nonnull CPTAxisSet *)axisSet;
/// @}

@end


<|start_filename|>CorePlot/_CPTPlainWhiteTheme.h<|end_filename|>
#import "_CPTXYTheme.h"

@interface _CPTPlainWhiteTheme : _CPTXYTheme

@end


<|start_filename|>CorePlot/_CPTFillGradient.h<|end_filename|>
#import "CPTFill.h"

@class CPTGradient;

@interface _CPTFillGradient : CPTFill<NSCopying, NSCoding, NSSecureCoding>

/// @name Initialization
/// @{
-(nonnull instancetype)initWithGradient:(nonnull CPTGradient *)aGradient NS_DESIGNATED_INITIALIZER;
-(nullable instancetype)initWithCoder:(nonnull NSCoder *)coder NS_DESIGNATED_INITIALIZER;
/// @}

/// @name Drawing
/// @{
-(void)fillRect:(CGRect)rect inContext:(nonnull CGContextRef)context;
-(void)fillPathInContext:(nonnull CGContextRef)context;
/// @}

@end


<|start_filename|>CorePlot/_CPTMaskLayer.h<|end_filename|>
#import "CPTLayer.h"

@interface CPTMaskLayer : CPTLayer

@end


<|start_filename|>CorePlot/CPTNumericData+TypeConversion.h<|end_filename|>
#import "CPTNumericData.h"
#import "CPTNumericDataType.h"

/** @category CPTNumericData(TypeConversion)
 *  @brief Type conversion methods for CPTNumericData.
 **/
@interface CPTNumericData(TypeConversion)

/// @name Type Conversion
/// @{
-(nonnull CPTNumericData *)dataByConvertingToDataType:(CPTNumericDataType)newDataType;

-(nonnull CPTNumericData *)dataByConvertingToType:(CPTDataTypeFormat)newDataType sampleBytes:(size_t)newSampleBytes byteOrder:(CFByteOrder)newByteOrder;
/// @}

/// @name Data Conversion Utilities
/// @{
-(void)convertData:(nonnull NSData *)sourceData dataType:(nonnull CPTNumericDataType *)sourceDataType toData:(nonnull NSMutableData *)destData dataType:(nonnull CPTNumericDataType *)destDataType;
-(void)swapByteOrderForData:(nonnull NSMutableData *)sourceData sampleSize:(size_t)sampleSize;
/// @}

@end


<|start_filename|>CorePlot/CPTMutableLineStyle.h<|end_filename|>
#import "CPTLineStyle.h"

@class CPTColor;

@interface CPTMutableLineStyle : CPTLineStyle

@property (nonatomic, readwrite, assign) CGLineCap lineCap;
@property (nonatomic, readwrite, assign) CGLineJoin lineJoin;
@property (nonatomic, readwrite, assign) CGFloat miterLimit;
@property (nonatomic, readwrite, assign) CGFloat lineWidth;
@property (nonatomic, readwrite, strong, nullable) CPTNumberArray *dashPattern;
@property (nonatomic, readwrite, assign) CGFloat patternPhase;
@property (nonatomic, readwrite, strong, nullable) CPTColor *lineColor;
@property (nonatomic, readwrite, strong, nullable) CPTFill *lineFill;
@property (nonatomic, readwrite, strong, nullable) CPTGradient *lineGradient;

@end
