export interface ThemeExportEnvelope {
    schemaVersion: number;
    exportedAt: string;
    sourceVersion: string;
    theme: ThemeExportPayload;
    presets: PresetExportPayload[];
    assets: ThemeAssetsPayload;
}
export interface ThemeExportPayload {
    name: string;
    description: string | null;
    icon: string | null;
    sortOrder: number;
    backgroundsJson: string;
    textColorsJson: string;
    borderColorsJson: string;
    statusColorsJson: string;
    defaultTypographyJson: string;
    defaultBorderRadiusJson: string;
    defaultItemPaletteKey: string;
    defaultAccentColorKey: string;
    generatorSeedJson: string | null;
    /** Optional in v1 envelopes; required at server-side persistence (defaults to "{}"). */
    dataVizColorsJson?: string | null;
}
export interface PresetExportPayload {
    name: string;
    description: string | null;
    icon: string | null;
    sortOrder: number;
    accentColorKey: string;
    itemPaletteKey: string | null;
    typographyJson: string | null;
    borderRadiusJson: string | null;
    backgroundOverrideJson: string | null;
    /** Null = inherit from theme. Optional in v1 envelopes for backwards compatibility. */
    dataVizColorsJson?: string | null;
}
export interface ThemeAssetsPayload {
    logo: AssetBlob | null;
    favicon: AssetBlob | null;
}
export interface AssetBlob {
    originalFileName: string;
    contentType: string;
    width: number | null;
    height: number | null;
    base64: string;
}
export interface ImportThemeResult {
    themeId: string;
    finalName: string;
}
/** Highest <c>schemaVersion</c> understood by this client. Mirrors the server constant. */
export declare const CURRENT_THEME_SCHEMA_VERSION = 1;
/** Maximum total envelope size accepted at import time (server enforces; client checks pre-flight). */
export declare const MAX_ENVELOPE_BYTES: number;
//# sourceMappingURL=themeExport.d.ts.map