import { type BrandAssetLike, type BrandSettings, type ColorMode, type LogoShape, type SidebarDensity } from '@actuate-media/cms-core/appearance';
import type { AdminBrandCache, AppearanceSnapshot } from '../components/ThemeProvider.js';
/** GET /appearance response shape (admin Appearance tab + boot hydration). */
export interface AppearanceApiResponse {
    appearance: {
        adminColorModeDefault: ColorMode;
        adminAccentColor: string;
        sidebarDensity: SidebarDensity;
        contentFont: string;
        reduceMotion: boolean;
    };
    brand: BrandSettings;
    resolved: {
        admin: {
            initials: string;
        };
    };
    assets: BrandAssetLike[];
    siteTitle: string | null;
}
export interface AssetPreview {
    id: string;
    url: string;
    mimeType: string;
    width?: number;
    height?: number;
    shape: LogoShape;
}
export declare function parseAppearanceAssets(assets: BrandAssetLike[]): Record<string, AssetPreview>;
export declare function adminBrandToCache(brand: BrandSettings, assets: Record<string, AssetPreview>, siteTitle: string | null): AdminBrandCache;
/** Map a stored appearance payload into the ThemeProvider snapshot. */
export declare function appearanceApiToSnapshot(data: AppearanceApiResponse): AppearanceSnapshot;
//# sourceMappingURL=appearance-api.d.ts.map