import { EventEmitter } from 'events';
import { ThemeConfig, ColorScheme, FontConfig, BorderConfig, ComponentStyles, StyleConfig } from '../types/monitoring';
export interface ThemeBuilderOptions {
    enablePreview?: boolean;
    autoValidate?: boolean;
    strictMode?: boolean;
}
export interface ColorPalette {
    name: string;
    colors: string[];
    description?: string;
}
export interface ThemeTemplate {
    id: string;
    name: string;
    description: string;
    baseTheme: Partial<ThemeConfig>;
    category: 'dark' | 'light' | 'high-contrast' | 'custom';
}
export interface ThemePreviewData {
    themeId: string;
    components: string[];
    screenshot?: string;
    timestamp: Date;
}
export declare class CustomThemeBuilder extends EventEmitter {
    private currentTheme;
    private options;
    private colorPalettes;
    private templates;
    private validationErrors;
    private validationWarnings;
    constructor(options?: ThemeBuilderOptions);
    startNew(baseTemplate?: string): this;
    loadTheme(theme: ThemeConfig): this;
    setThemeInfo(info: {
        id: string;
        name: string;
        description?: string;
        author?: string;
        version?: string;
    }): this;
    setColors(colors: Partial<ColorScheme> | string): this;
    setColor(colorName: keyof ColorScheme, colorValue: string): this;
    setFonts(fonts: Partial<FontConfig>): this;
    setBorders(borders: Partial<BorderConfig>): this;
    setComponentStyles(componentStyles: Partial<ComponentStyles>): this;
    setComponentStyle(componentName: keyof ComponentStyles, style: Partial<StyleConfig>): this;
    transformColors(transformation: (color: string) => string): this;
    adjustBrightness(factor: number): this;
    adjustSaturation(factor: number): this;
    generateComplementaryScheme(baseColor: string): this;
    validateCurrentTheme(): {
        valid: boolean;
        errors: string[];
        warnings: string[];
    };
    getValidationErrors(): string[];
    getValidationWarnings(): string[];
    build(): ThemeConfig;
    getProgress(): {
        completed: string[];
        missing: string[];
        percentage: number;
    };
    getCurrentTheme(): Partial<ThemeConfig>;
    getAvailableColorPalettes(): string[];
    getColorPalette(name: string): ColorPalette | undefined;
    addColorPalette(palette: ColorPalette): this;
    getAvailableTemplates(): string[];
    getTemplate(id: string): ThemeTemplate | undefined;
    addTemplate(template: ThemeTemplate): this;
    reset(): this;
    private initializeTheme;
    private validateAndEmit;
    private buildCompleteTheme;
    private getDefaultColors;
    private getDefaultFonts;
    private getDefaultBorders;
    private getDefaultComponentStyles;
    private paletteToColorScheme;
    private adjustColorBrightness;
    private adjustColorSaturation;
    private generateComplementaryColors;
    private loadBuiltInColorPalettes;
    private loadBuiltInTemplates;
}
//# sourceMappingURL=custom-theme-builder.d.ts.map