/*
 *     Generated by class-dump 3.1.2.
 *
 *     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard.
 */

struct CGAffineTransform {
    float _field1;
    float _field2;
    float _field3;
    float _field4;
    float _field5;
    float _field6;
};

struct CGColor;

struct CGContext;

struct CGPath;

struct CGPoint {
    float x;
    float y;
};

struct CGRect {
    struct CGPoint _field1;
    struct CGSize _field2;
};

struct CGSBounds {
    int x;
    int y;
    int w;
    int h;
};

struct CGSize {
    float width;
    float height;
};

struct LKTimingFunctionPrivate {
    float _field1[2];
    float _field2[2];
};

struct LKTransform {
    float _field1;
    float _field2;
    float _field3;
    float _field4;
    float _field5;
    float _field6;
    float _field7;
    float _field8;
    float _field9;
    float _field10;
    float _field11;
    float _field12;
    float _field13;
    float _field14;
    float _field15;
    float _field16;
};

struct _LKAttrList;

struct _LKPropertyDescription;

struct _LKRenderAnimation {
    CDAnonymousStruct1 _field1;
    float _field2;
    struct _LKRenderTiming *_field3;
    struct _LKRenderVector *_field4;
    union _LKRenderKeyPath _field5;
    unsigned int _field6;
    union {
        struct _LKRenderArray *_field1;
        union _LKRenderKeyPath _field2;
        struct {
            union _LKRenderKeyPath _field1;
            void *_field2;
            void *_field3;
            void *_field4;
        } _field3;
        struct {
            union _LKRenderKeyPath _field1;
            struct _LKRenderArray *_field2;
            struct _LKRenderVector *_field3;
            struct _LKRenderPath *_field4;
        } _field4;
        struct {
            unsigned int _field1;
            unsigned int _field2;
            float _field3;
            float _field4;
            struct _LKRenderFilter *_field5;
            void *_field6;
            unsigned int _field7;
            unsigned int _field8;
        } _field5;
    } _field7;
};

struct _LKRenderArray;

struct _LKRenderContext {
    struct {
        int _field1;
    } _field1;
    unsigned int _field2;
    struct __CFDictionary *_field3;
    unsigned int _field4;
    struct _opaque_pthread_mutex_t _field5;
    unsigned int _field6;
    struct _LKRenderHandle *_field7;
    struct __CFDictionary *_field8;
    struct x_list_struct *_field9;
    float _field10;
    struct _LKRenderFence *_field11;
    double _field12;
    int *_field13;
    struct CGSBounds _field14;
    unsigned int _field15;
    unsigned int _field16;
};

struct _LKRenderFence;

struct _LKRenderFilter;

struct _LKRenderHandle;

struct _LKRenderPath;

struct _LKRenderProxy {
    CDAnonymousStruct1 _field1;
    unsigned long long _field2;
};

struct _LKRenderTiming;

struct _LKRenderVector;

struct _NSZone;

struct __CFArray;

struct __CFDictionary;

struct _opaque_pthread_mutex_t {
    long __sig;
    char __opaque[40];
};

struct x_list_struct {
    void *_field1;
    struct x_list_struct *_field2;
};

typedef struct {
    int x;
} CDAnonymousStruct1;

union _LKRenderKeyPath {
    unsigned int _field1;
    unsigned int *_field2;
};

/*
 * File: System/Library/Frameworks/LayerKit.framework/LayerKit
 *       Current version: 0.1.0, Compatibility version: 0.1.0
 */

@protocol LKAction
- (void)runActionForKey:(id)fp8 object:(id)fp12 arguments:(id)fp16;
@end

@protocol LKObject <NSCoding>
+ (id)properties;
+ (id)defaultValueForKey:(id)fp8;
- (BOOL)shouldArchiveValueForKey:(id)fp8;
@end

@protocol LKObjectPrivate
+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
+ (BOOL)shouldRetainValueForKey:(id)fp8;
+ (BOOL)shouldCopyValueForKey:(id)fp8;
+ (void *)methodForSelector:(SEL)fp8;
@end

@protocol LKTiming
- (double)beginTime;
- (void)setBeginTime:(double)fp8;
- (double)duration;
- (void)setDuration:(double)fp8;
- (float)speed;
- (void)setSpeed:(float)fp8;
- (double)timeOffset;
- (void)setTimeOffset:(double)fp8;
- (float)repeatCount;
- (void)setRepeatCount:(float)fp8;
- (double)repeatDuration;
- (void)setRepeatDuration:(double)fp8;
- (BOOL)autoreverses;
- (void)setAutoreverses:(BOOL)fp8;
- (id)fillMode;
- (void)setFillMode:(id)fp8;
@end

@protocol NSCoding
- (void)encodeWithCoder:(id)fp8;
- (id)initWithCoder:(id)fp8;
@end

@protocol NSCopying
- (id)copyWithZone:(struct _NSZone *)fp8;
@end

@interface LKAnimationGroup : LKAnimation
{
}

+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
- (void *)LK_copyRenderValue;
- (id)description;
- (id)animations;

@end

@interface LKTransition : LKAnimation
{
}

+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
- (void *)LK_copyRenderValue;
- (id)description;
- (id)type;
- (id)subtype;
- (float)startProgress;
- (float)endProgress;
- (id)filter;

@end

@interface LKKeyframeAnimation : LKPropertyAnimation
{
}

+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
- (void *)LK_copyRenderValue;
- (id)calculationMode;
- (id)keyTimes;
- (id)timingFunctions;
- (id)values;
- (struct CGPath *)path;

@end

@interface LKBasicAnimation : LKPropertyAnimation
{
}

- (void *)LK_copyRenderValue;
- (id)fromValue;
- (id)toValue;
- (id)byValue;

@end

@interface LKPropertyAnimation : LKAnimation
{
}

+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
+ (id)animationWithKeyPath:(id)fp8;
- (struct _LKRenderAnimation *)_setLKRenderAnimation:(struct _LKRenderAnimation *)fp8;
- (id)description;
- (BOOL)additive;
- (id)keyPath;
- (BOOL)cumulative;

@end

@interface LKAnimation : NSObject <NSCopying, LKTiming, LKObject, LKAction>
{
    struct _LKAttrList *_attr;
    unsigned int _flags;
}

+ (id)defaultValueForKey:(id)fp8;
+ (id)animation;
+ (id)properties;
+ (BOOL)resolveInstanceMethod:(SEL)fp8;
- (struct _LKRenderAnimation *)_setLKRenderAnimation:(struct _LKRenderAnimation *)fp8;
- (void)dealloc;
- (void)runActionForKey:(id)fp8 object:(id)fp12 arguments:(id)fp16;
- (BOOL)shouldArchiveValueForKey:(id)fp8;
- (id)initWithCoder:(id)fp8;
- (void)encodeWithCoder:(id)fp8;
- (id)valueForKey:(id)fp8;
- (void)setValue:(id)fp8 forKey:(id)fp12;
- (id)valueForUndefinedKey:(id)fp8;
- (void)setValue:(id)fp8 forUndefinedKey:(id)fp12;
- (id)valueForKeyPath:(id)fp8;
- (void)setValue:(id)fp8 forKeyPath:(id)fp12;
- (id)copyWithZone:(struct _NSZone *)fp8;

@end

@interface LKTransition (LKTransitionPrivate)
- (unsigned int)transitionFlags;
@end

@interface LKBasicAnimation (LKAnimationPrivate)
+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
- (BOOL)roundsToInteger;
@end

@interface LKAnimation (LKAnimationPrivate) <LKObjectPrivate>
+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
+ (BOOL)shouldRetainValueForKey:(id)fp8;
+ (BOOL)shouldCopyValueForKey:(id)fp8;
+ (void *)methodForSelector:(SEL)fp8;
- (double)frameInterval;
- (double)beginTime;
- (double)timeOffset;
- (double)duration;
- (float)speed;
- (float)repeatCount;
- (double)repeatDuration;
- (BOOL)autoreverses;
- (id)fillMode;
- (BOOL)removedOnCompletion;
- (id)timingFunction;
- (id)delegate;
@end

@interface LKAnimation (LKAnimationNotification)
@end

@interface LKSlotProxy : NSObject
{
    struct _LKRenderProxy *_proxy;
}

- (id)initWithName:(unsigned int)fp8;
- (void)dealloc;
- (void *)LK_copyRenderValue;

@end

@interface LKContextImpl : LKContext
{
    struct _opaque_pthread_mutex_t _mutex;
    void *_next;
    void *_layer;
    struct _LKRenderContext *_renderCtx;
    unsigned int _serverPort;
    unsigned int _clientPort;
    unsigned int _clientId;
    unsigned int _localId;
    unsigned int _coderFlags;
    struct x_list_struct *_shmems;
    struct x_list_struct *_deletedShmems;
    float _level;
    unsigned int _fenceName;
    unsigned int _fenceCount;
    unsigned int _ownsServerPort:1;
    unsigned int _synchronized:1;
    unsigned int _serverDied:1;
}

- (id)initWithOptions:(id)fp8;
- (unsigned int)_clientPort;
- (id)initRemoteWithOptions:(id)fp8;
- (void)invalidate;
- (void)dealloc;
- (unsigned int)contextId;
- (id)layer;
- (void)setLayer:(id)fp8;
- (void)orderAbove:(unsigned int)fp8;
- (void)orderBelow:(unsigned int)fp8;
- (void)setLevel:(float)fp8;
- (float)level;
- (struct _LKRenderContext *)renderContext;
- (BOOL)valid;
- (void)setFence:(unsigned int)fp8 count:(unsigned int)fp12;
- (unsigned int)createSlot;
- (void)deleteSlot:(unsigned int)fp8;
- (void)setObject:(id)fp8 forSlot:(unsigned int)fp12;

@end

@interface LKContext : NSObject
{
}

+ (id)allContexts;
+ (id)localContext;
+ (id)localContextWithOptions:(id)fp8;
+ (id)remoteContext;
+ (id)remoteContextWithOptions:(id)fp8;
+ (void)setClientPort:(unsigned int)fp8;
+ (id)objectForSlot:(unsigned int)fp8;
- (unsigned int)contextId;
- (void)invalidate;
- (id)layer;
- (void)setLayer:(id)fp8;
- (struct _LKRenderContext *)renderContext;
- (BOOL)valid;
- (void)orderAbove:(unsigned int)fp8;
- (void)orderBelow:(unsigned int)fp8;
- (void)setLevel:(float)fp8;
- (float)level;
- (void)setFence:(unsigned int)fp8 count:(unsigned int)fp12;
- (unsigned int)createSlot;
- (void)deleteSlot:(unsigned int)fp8;
- (void)setObject:(id)fp8 forSlot:(unsigned int)fp12;

@end

@interface LKFilter : NSObject <NSCopying, NSCoding>
{
    unsigned int _type;
    NSString *_name;
    BOOL _enabled;
    struct _LKAttrList *_attr;
}

+ (id)filterWithName:(id)fp8;
- (id)initWithName:(id)fp8;
- (id)type;
- (id)name;
- (void)setName:(id)fp8;
- (BOOL)enabled;
- (void)setEnabled:(BOOL)fp8;
- (void)setValue:(id)fp8 forKey:(id)fp12;
- (id)valueForKey:(id)fp8;
- (void)dealloc;
- (void *)LK_copyRenderValue;
- (id)copyWithZone:(struct _NSZone *)fp8;
- (void)encodeWithCoder:(id)fp8;
- (id)initWithCoder:(id)fp8;

@end

@interface LKLayer : NSObject <LKTiming, LKObject>
{
    unsigned int _superlayer;
    struct CGPoint _position;
    struct CGSize _size;
    void *_contents;
    struct __CFArray *_sublayers;
    id _delegate;
    struct _LKAttrList *_attr;
    unsigned int _flags;
}

+ (id)defaultValueForKey:(id)fp8;
+ (id)layer;
+ (id)properties;
+ (BOOL)resolveInstanceMethod:(SEL)fp8;
+ (id)defaultActionForKey:(id)fp8;
- (id)init;
- (id)initWithBounds:(struct CGRect)fp8;
- (void)dealloc;
- (id)description;
- (void)__mark:(struct __CFArray *)fp8;
- (id)valueForKey:(id)fp8;
- (id)valueForUndefinedKey:(id)fp8;
- (void)setValue:(id)fp8 forKey:(id)fp12;
- (void)setValue:(id)fp8 forUndefinedKey:(id)fp12;
- (id)valueForKeyPath:(id)fp8;
- (void)setValue:(id)fp8 forKeyPath:(id)fp12;
- (id)initWithCoder:(id)fp8;
- (void)encodeWithCoder:(id)fp8;
- (BOOL)shouldArchiveValueForKey:(id)fp8;
- (struct CGRect)bounds;
- (void)setBounds:(struct CGRect)fp8;
- (struct CGPoint)position;
- (void)setPosition:(struct CGPoint)fp8;
- (struct CGAffineTransform)affineTransform;
- (void)setAffineTransform:(struct CGAffineTransform)fp8;
- (BOOL)hidden;
- (void)setHidden:(BOOL)fp8;
- (struct CGRect)frame;
- (void)setFrame:(struct CGRect)fp8;
- (struct CGPoint)convertPoint:(struct CGPoint)fp8 fromLayer:(id)fp16;
- (struct CGPoint)convertPoint:(struct CGPoint)fp8 toLayer:(id)fp16;
- (struct CGRect)convertRect:(struct CGRect)fp8 fromLayer:(id)fp24;
- (struct CGRect)convertRect:(struct CGRect)fp8 toLayer:(id)fp24;
- (double)convertTime:(double)fp8 fromLayer:(id)fp16;
- (double)convertTime:(double)fp8 toLayer:(id)fp16;
- (id)hitTest:(struct CGPoint)fp8;
- (BOOL)containsPoint:(struct CGPoint)fp8;
- (id)contents;
- (void)setContents:(id)fp8;
- (BOOL)opaque;
- (void)setOpaque:(BOOL)fp8;
- (BOOL)clearsContext;
- (void)setClearsContext:(BOOL)fp8;
- (BOOL)sortsSublayers;
- (void)setSortsSublayers:(BOOL)fp8;
- (BOOL)needsDisplayOnBoundsChange;
- (void)setNeedsDisplayOnBoundsChange:(BOOL)fp8;
- (id)contentsGravity;
- (void)setContentsGravity:(id)fp8;
- (BOOL)masksToBounds;
- (void)setMasksToBounds:(BOOL)fp8;
- (id)sublayers;
- (void)setSublayers:(id)fp8;
- (id)superlayer;
- (id)delegate;
- (void)setDelegate:(id)fp8;
- (void)removeFromSuperlayer;
- (void)insertSublayer:(id)fp8 atIndex:(unsigned int)fp12;
- (void)addSublayer:(id)fp8;
- (void)insertSublayer:(id)fp8 below:(id)fp12;
- (void)insertSublayer:(id)fp8 above:(id)fp12;
- (void)replaceSublayer:(id)fp8 with:(id)fp12;
- (id)actionForKey:(id)fp8;
- (void)addAnimation:(id)fp8 forKey:(id)fp12;
- (void)removeAllAnimations;
- (void)removeAnimationForKey:(id)fp8;
- (void)setNeedsDisplay;
- (void)setNeedsDisplayInRect:(struct CGRect)fp8;
- (void)renderInContext:(struct CGContext *)fp8;
- (void)display;
- (void)_display;
- (void)drawInContext:(struct CGContext *)fp8;
- (void)setNeedsLayout;
- (struct CGSize)preferredFrameSize;
- (void)layoutIfNeeded;
- (void)layoutSublayers;

@end

@interface LKLayer (LKLayerPrivate) <LKObjectPrivate>
+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
+ (void *)methodForSelector:(SEL)fp8;
+ (BOOL)shouldRetainValueForKey:(id)fp8;
+ (BOOL)shouldCopyValueForKey:(id)fp8;
- (void)invalidateContents;
- (void)setContentsChanged;
- (void *)regionBeingDrawn;
- (BOOL)needsDisplay;
- (void)displayIfNeeded;
- (BOOL)needsLayout;
- (id)hitTest:(struct CGPoint)fp8 options:(unsigned int)fp16;
- (BOOL)isDescendantOf:(id)fp8;
- (id)ancestorSharedWithLayer:(id)fp8;
- (id)sublayerEnumerator;
- (struct CGSize)size;
- (double)beginTime;
- (double)timeOffset;
- (double)duration;
- (float)speed;
- (float)repeatCount;
- (double)repeatDuration;
- (BOOL)autoreverses;
- (id)fillMode;
- (struct CGPoint)anchorPoint;
- (float)zPosition;
- (float)nearClippingDepth;
- (struct LKTransform)transform;
- (struct LKTransform)sublayerTransform;
- (struct CGAffineTransform)contentsTransform;
- (id)magnificationFilter;
- (id)minificationFilter;
- (float)opacity;
- (struct CGColor *)backgroundColor;
- (id)name;
- (id)filters;
- (id)backgroundFilters;
- (id)compositingFilter;
@end

@interface LKLayer (LKLayerRender)
- (void *)LK_copyRenderValue;
@end

@interface NSValue (LKTransformAdditions)
+ (id)valueWithLKTransform:(struct LKTransform)fp8;
- (struct LKTransform)LKTransformValue;
@end

@interface LKLayer (_LKLayerObsolete)
+ (id)defaultActionForKeyPath:(id)fp8;
- (void)setBegin:(double)fp8;
- (void)setOffset:(double)fp8;
- (void)setFill:(BOOL)fp8;
- (void)setContentsFilterMode:(id)fp8;
- (id)contentsFilterMode;
- (void)invalidateLayout;
- (void)removeAnimationsForKey:(id)fp8;
- (id)actionForKeyPath:(id)fp8;
@end

@interface LKBasicAnimation (LKBasicAnimationObsolete)
- (void)setFrom:(id)fp8;
- (void)setTo:(id)fp8;
@end

@interface LKAnimation (LKAnimationObsolete)
- (void)setBegin:(double)fp8;
- (void)setOffset:(double)fp8;
- (void)setFill:(BOOL)fp8;
@end

@interface NSValue (LKRenderValue)
- (void *)LK_copyRenderValue;
@end

@interface NSAffineTransform (LKRenderValue)
- (void *)LK_copyRenderValue;
@end

@interface NSArray (LKRenderValue)
- (void *)LK_copyRenderValue;
@end

@interface NSNumber (LKRenderValue)
- (void *)LK_copyRenderValue;
@end

@interface NSObject (LKRenderValue)
- (void *)LK_copyRenderValue;
@end

@interface LKScrollLayer : LKLayer
{
}

+ (unsigned long)copyPropertyList:(const struct _LKPropertyDescription **)fp8;
+ (id)defaultValueForKey:(id)fp8;
- (void)scrollToPoint:(struct CGPoint)fp8;
- (void)scrollToRect:(struct CGRect)fp8;
- (void)_scrollPoint:(struct CGPoint)fp8 fromLayer:(id)fp16;
- (void)_scrollRect:(struct CGRect)fp8 fromLayer:(id)fp24;
- (struct CGRect)_visibleRectOfLayer:(id)fp8;

@end

@interface LKLayer (LKLayerScrolling)
- (void)_scrollPoint:(struct CGPoint)fp8 fromLayer:(id)fp16;
- (void)scrollPoint:(struct CGPoint)fp8;
- (void)_scrollRect:(struct CGRect)fp8 fromLayer:(id)fp24;
- (void)scrollRectToVisible:(struct CGRect)fp8;
- (struct CGRect)_visibleRectOfLayer:(id)fp8;
- (struct CGRect)visibleRect;
@end

@interface LKSublayerEnumerator : NSEnumerator
{
    LKLayer *_mask;
    NSArray *_sublayers;
    unsigned int _index;
    unsigned int _count;
}

- (id)initWithLayer:(id)fp8;
- (void)dealloc;
- (id)nextObject;

@end

@interface LKTimingFunction : NSObject <NSCoding>
{
    struct LKTimingFunctionPrivate *_priv;
}

+ (id)functionWithControlPoints:(float)fp8:(float)fp12:(float)fp16:(float)fp20;
+ (id)functionWithName:(id)fp8;
- (id)initWithControlPoints:(float)fp8:(float)fp12:(float)fp16:(float)fp20;
- (void)dealloc;
- (void)_getPoints:(float *)fp8;
- (void)getControlPointAtIndex:(unsigned long)fp8 values:(float [2])fp12;
- (void)encodeWithCoder:(id)fp8;
- (id)initWithCoder:(id)fp8;

@end

@interface LKTimingFunction (LKTimingFunctionPrivate)
- (float)_solveForInput:(float)fp8;
@end

@interface LKTransaction : NSObject
{
}

+ (void)_callbackTimer:(id)fp8;
+ (void)begin;
+ (void)commit;
+ (void)flush;
+ (id)valueForKey:(id)fp8;
+ (void)setValue:(id)fp8 forKey:(id)fp12;

@end

@interface LKTransaction (LKTransactionPrivate)
+ (BOOL)beginWithoutBlocking;
+ (void)synchronize;
+ (unsigned int)currentState;
@end

