/**
 * Deterministic theme generator — takes 1 to 3 seed colours and produces the
 * full structural palette (backgrounds / text / borders / status) for a
 * UiTheme. No AI needed: pure colorimetry (RGB ↔ HSL interpolation, WCAG
 * contrast check).
 *
 * Seed rules:
 *   1 colour  → accent. Background = mode-default neutral, text auto.
 *   2 colours → accent + background. Text auto from luminance.
 *   3 colours → accent + background + text (total control).
 */
export interface Backgrounds {
    app: string;
    primary: string;
    secondary: string;
    tertiary: string;
    card: string;
    hover: string;
    active: string;
}
export interface TextColors {
    primary: string;
    secondary: string;
    tertiary: string;
    muted: string;
    inverse: string;
}
export interface BorderColors {
    default: string;
    subtle: string;
    strong: string;
}
export interface StatusSwatch {
    bg: string;
    text: string;
    border: string;
    dot: string;
}
export interface StatusColors {
    success: StatusSwatch;
    warning: StatusSwatch;
    error: StatusSwatch;
    info: StatusSwatch;
}
export interface GeneratedTheme {
    mode: 'dark' | 'light';
    backgrounds: Backgrounds;
    text: TextColors;
    border: BorderColors;
    status: StatusColors;
    /** Closest key from ACCENT_COLORS matching the seed accent (for the accent swatch grid). */
    accentKey: string;
    /** Recommended item palette key — matches the accent hue when possible, else neutral. */
    recommendedItemPaletteKey: string;
}
export interface ThemeSeed {
    /** Required — branding accent used for buttons, links, focus rings. */
    accentHex: string;
    /** Optional — base background color. If missing, falls back to #161618 (dark) or #fafafa (light). */
    backgroundHex?: string;
    /** Optional — primary text color. If missing, derived from background luminance. */
    textHex?: string;
    /** Fallback mode when only the accent is provided. Defaults to 'dark'. */
    prefersDark?: boolean;
}
/** Returns the accent key whose shade-500 hex is closest to the supplied seed. */
export declare function findClosestAccentKey(hex: string): string;
export declare function generateTheme(seed: ThemeSeed): GeneratedTheme;
/** Helper for reporting: build a one-line contrast summary for the UI. */
export declare function contrastReport(theme: GeneratedTheme): {
    textOnApp: number;
    textOnCard: number;
    secondaryOnApp: number;
};
//# sourceMappingURL=generateTheme.d.ts.map