polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
88 lines • 3.02 kB
TypeScript
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