/**
 * One palette role slot. `name` is intentionally a free string here so the
 * component can be reused for theme palettes that predate the closed
 * `PaletteTokenName` union; callers pass the role-label mapping via `roles`.
 */
export type PaletteToken = Readonly<{
    name: string;
    hex: string;
}>;
export type PaletteRole = Readonly<{
    key: string;
    label: string;
}>;
export declare const DEFAULT_BRAND_ROLES: ReadonlyArray<PaletteRole>;
export declare const DEFAULT_FEEDBACK_ROLES: ReadonlyArray<PaletteRole>;
export declare const DEFAULT_SURFACE_ROLES: ReadonlyArray<PaletteRole>;
export type PaletteTokenEditorProps = Readonly<{
    /**
     * Current palette colours. Only entries whose `name` matches one of the
     * configured role keys are surfaced; extra entries pass through untouched.
     */
    palette: ReadonlyArray<PaletteToken>;
    /**
     * Called when the user edits a role's hex via the picker or the input
     * field. The editor filters implausible strings and forwards a canonical
     * lowercase `#RRGGBB` value via `normalizeHex`; the handler can merge
     * the value into its store without further normalisation.
     */
    onChange: (role: string, hex: string) => void;
    /**
     * Optional invalid-palette banner — shown when the consumer wants to
     * surface schema errors (e.g. from a Zod parse failure) without coupling
     * the editor to a validation context.
     */
    hasInvalidValues?: boolean;
    /** Override the default role groupings (e.g. to add `primaryForeground`). */
    brandRoles?: ReadonlyArray<PaletteRole>;
    feedbackRoles?: ReadonlyArray<PaletteRole>;
    surfaceRoles?: ReadonlyArray<PaletteRole>;
    showContrastChecks?: boolean;
    className?: string;
}>;
/**
 * Shared palette role grid + contrast checker. Self-contained: no theme-
 * editor / validation context dependencies. Used by:
 *   - Macadamia onboarding (advanced colour panel, planned)
 *   - LiveThemeEditor's palette tab (via a thin context wrapper)
 *   - Style configurator's brand-colours row
 */
export declare function PaletteTokenEditor({ palette, onChange, hasInvalidValues, brandRoles, feedbackRoles, surfaceRoles, showContrastChecks, className, }: PaletteTokenEditorProps): import("react/jsx-runtime").JSX.Element;
