/**
 * White-label theming system for the Oversight Command Center.
 *
 * Enables per-tenant branding customization: logo, colors, domain,
 * company name, and custom CSS. Themes are stored per-tenant and
 * resolved at render time.
 *
 * @connexum/ai-governance
 */
export interface ThemeConfig {
    /** Tenant or organization ID */
    tenantId: string;
    /** Company/organization name */
    companyName: string;
    /** Logo URL or path */
    logoUrl?: string;
    /** Favicon URL or path */
    faviconUrl?: string;
    /** Primary brand color (hex) */
    primaryColor: string;
    /** Secondary brand color (hex) */
    secondaryColor?: string;
    /** Accent color for alerts/highlights (hex) */
    accentColor?: string;
    /** Background color (hex) */
    backgroundColor?: string;
    /** Text color (hex) */
    textColor?: string;
    /** Custom CSS overrides */
    customCss?: string;
    /** Custom domain */
    domain?: string;
    /** Email footer branding */
    emailFooter?: string;
}
export interface ResolvedTheme extends ThemeConfig {
    /** CSS variables for injection */
    cssVariables: Record<string, string>;
    /** Full CSS output (variables + custom CSS) */
    css: string;
}
export interface ThemeStoreConfig {
    /** Directory for storing theme files */
    themeDir: string;
}
export declare class ThemeStore {
    private themes;
    private themeDir;
    constructor(config: ThemeStoreConfig);
    /**
     * Set or update a tenant's theme.
     */
    setTheme(config: ThemeConfig): ResolvedTheme;
    /**
     * Get a tenant's resolved theme.
     */
    getTheme(tenantId: string): ResolvedTheme | null;
    /**
     * Delete a tenant's theme.
     */
    deleteTheme(tenantId: string): boolean;
    /**
     * List all registered themes.
     */
    listThemes(): ThemeConfig[];
    /**
     * Get a default theme for unbranded tenants.
     */
    getDefaultTheme(tenantId: string, companyName: string): ResolvedTheme;
    /**
     * Get the number of stored themes.
     */
    get themeCount(): number;
    private resolveTheme;
    private isValidHex;
    private saveTheme;
    private loadThemes;
    private ensureDir;
}
//# sourceMappingURL=theme.d.ts.map