export type LayoutSurfaces = Record; export declare const isValidHex: (value?: string | null) => boolean; export type LayoutSurfaceInput = { /** The variant's own `backgroundStyle`. */ base: LayoutSurfaces | undefined; /** `chatWindow.backgroundColor` as the deployment set it. */ chosen: string | undefined | null; /** The variant's name; only Neptune is treated specially, and only for its wash. */ variant: string; }; /** * True when the variant's own colours are the page, so a deployment colour cannot be substituted * underneath them. Luna and Neptune pick their text, panels and accents against a fixed page; * Erebus washes a gradient it derives from whatever colour it is given. */ export declare const variantOwnsItsPage: (base: LayoutSurfaces | undefined, variant: string) => boolean; /** * A variant either owns its page or derives the whole of it from the chosen colour — never both. * * Painting one surface with the chosen colour and leaving the rest at the variant's values is * what produced the half-states: Neptune with a white background kept its near-white body text * and black panels, so one half was unreadable and the other belonged to a different design. */ export declare function resolveLayoutSurfaces(input: LayoutSurfaceInput): LayoutSurfaces;