

#import <AppKit/AppKit.h>

@class NSColor;

APPKIT_EXPORT NSString *const NSColorListDidChangeNotification;

@interface NSColorList : NSObject {
    NSMutableArray *_keys;
    NSMutableArray *_colors;
    NSString *_name;
    NSString *_path;
}

+ (NSArray *)availableColorLists;

- initWithName:(NSString *)name fromFile:(NSString *)path;
- initWithName:(NSString *)name;

+ (NSColorList *)colorListNamed:(NSString *)name;

- (BOOL)isEditable;
- (NSString *)name;
- (NSArray *)allKeys;
- (NSColor *)colorWithKey:(NSString *)key;

- (void)setColor:(NSColor *)color forKey:(NSString *)key;
- (void)removeColorWithKey:(NSString *)key;
- (void)insertColor:(NSColor *)color key:(NSString *)key atIndex:(unsigned)index;

- (void)writeToFile:(NSString *)path;
- (void)removeFile;

@end
