interface ExxatPaletteSwatchData {
    hex: string;
    oklch: string;
    oklchValues: {
        l: number;
        c: number;
        h: number;
    };
}
type ExxatPaletteJson = Record<string, Record<string, ExxatPaletteSwatchData>>;
type ExxatPaletteFamilyId = "exxatPink" | "exxatBlue" | "exxatIndigo" | "sapphireGrayBlack" | "orange" | "teal" | "red" | "neutral" | "purple" | "green";
/**
 * Display labels — keep ordering consistent with how the palette is composed
 * (Exxat brand families first, then auxiliary hues, neutrals last).
 */
declare const EXXAT_PALETTE_FAMILIES: ReadonlyArray<{
    id: ExxatPaletteFamilyId;
    label: string;
}>;
/** Shade keys preserved in palette order (50, 100, 150, …, 900). Some "round" stops
 * are intentionally absent (no 350 / 800) — keep this in sync with the JSON. */
declare const EXXAT_PALETTE_SHADES: ReadonlyArray<string>;
interface ExxatPaletteSwatch extends ExxatPaletteSwatchData {
    family: ExxatPaletteFamilyId;
    familyLabel: string;
    shade: string;
    /** Human-readable label, e.g. `"Pink 500"`. */
    label: string;
}
/** Family → ordered list of swatches (only shades that actually exist in the JSON). */
declare const EXXAT_PALETTE_BY_FAMILY: ReadonlyArray<{
    id: ExxatPaletteFamilyId;
    label: string;
    swatches: ReadonlyArray<ExxatPaletteSwatch>;
}>;
/** Flat list — convenient for "find by value" lookups. */
declare const EXXAT_PALETTE_SWATCHES: ReadonlyArray<ExxatPaletteSwatch>;
/**
 * Try to resolve a stored brand color (any CSS string) to a known palette
 * swatch — matches both the canonical OKLCH form and the hex form so values
 * authored either way still light up in the picker.
 */
declare function findExxatPaletteSwatch(value: string | null | undefined): ExxatPaletteSwatch | undefined;

export { EXXAT_PALETTE_BY_FAMILY, EXXAT_PALETTE_FAMILIES, EXXAT_PALETTE_SHADES, EXXAT_PALETTE_SWATCHES, type ExxatPaletteFamilyId, type ExxatPaletteJson, type ExxatPaletteSwatch, type ExxatPaletteSwatchData, findExxatPaletteSwatch };
