import type { Theme } from '../schema';
import { type SiteChromeLookDiagnostics } from './customizableSurfaces';
import { type Brand } from './types';
export declare const headerLookIdValues: readonly ["clean-base", "brand-solid", "editorial-line", "centered-calm", "practical-utility", "minimal-transparent", "transparent-overlay", "floating-glass"];
export type HeaderLookIdValue = typeof headerLookIdValues[number];
export type HeaderLookId = Brand<HeaderLookIdValue, 'HeaderLookId'>;
export declare function asHeaderLookId(value: HeaderLookIdValue): HeaderLookId;
export type HeaderLookVisualTreatment = 'solid-neutral' | 'solid-brand' | 'light-editorial' | 'minimal-transparent' | 'transparent-overlay' | 'floating-glass';
export type HeaderLookLayoutBehavior = 'normal-flow' | 'sticky' | 'sticky-shrink' | 'fixed-overlay' | 'fixed-floating';
export type HeaderLookOpeningRequirement = 'none' | 'reserved-space-ok' | 'requires-image-hero-with-contrast-overlay';
export type HeaderLogoShape = 'none' | 'text-only' | 'horizontal' | 'square' | 'tall';
export type HeaderLookDefinition = Readonly<{
    id: HeaderLookId;
    label: string;
    visualTreatment: HeaderLookVisualTreatment;
    layoutBehavior: HeaderLookLayoutBehavior;
    openingRequirement: HeaderLookOpeningRequirement;
    maxRecommendedNavItems?: number;
    allowedLogoShapes?: readonly HeaderLogoShape[];
    requiresProminentCta?: boolean;
    compile: (theme: Theme) => Theme['header'];
}>;
export type HeaderOpeningSectionContext = Readonly<{
    kind: 'unknown';
    canAdjust: false;
}> | Readonly<{
    kind: 'plain';
    canAdjust: false;
}> | Readonly<{
    kind: 'image-hero';
    hasContrastOverlay: boolean;
    hasTopSpacing: boolean;
    canAdjust: false;
}>;
export type HeaderLogoContext = Readonly<{
    shape: HeaderLogoShape;
}>;
export type HeaderNavigationContext = Readonly<{
    itemCount: number;
}>;
export type HeaderCtaContext = Readonly<{
    importance: 'low' | 'medium' | 'high';
}>;
export type HeaderBannerContext = Readonly<{
    persistentVisibility: 'none' | 'possible' | 'visible';
    shellCanOffsetOverlayHeader: boolean;
}>;
export type HeaderSelectionContext = Readonly<{
    openingSection: HeaderOpeningSectionContext;
    logo: HeaderLogoContext;
    navigation: HeaderNavigationContext;
    cta: HeaderCtaContext;
    banner: HeaderBannerContext;
}>;
export type RejectedHeaderLookReason = 'requires-image-hero-with-contrast-overlay' | 'requires-opening-section-top-spacing' | 'requires-banner-offset-shell' | 'too-many-nav-items' | 'logo-shape-incompatible' | 'cta-treatment-unavailable';
export type RejectedHeaderLook = Readonly<{
    lookId: HeaderLookId;
    reasons: readonly RejectedHeaderLookReason[];
}>;
export type HeaderSelectionResult = Readonly<{
    selectedLookId: HeaderLookId;
    selectedLook: HeaderLookDefinition;
    header: Theme['header'];
    rejected: readonly RejectedHeaderLook[];
}>;
export type HeaderLookDiagnostics = SiteChromeLookDiagnostics<HeaderLookId, RejectedHeaderLookReason>;
export type HeaderLookResolutionInput = Readonly<{
    theme: Theme;
    recommendedLookIds: readonly HeaderLookId[];
    context?: Partial<HeaderSelectionContext>;
}>;
export declare const defaultHeaderSelectionContext: HeaderSelectionContext;
declare function solidBrandHeader(theme: Theme): Theme['header'];
declare function cleanBaseHeader(theme: Theme): Theme['header'];
declare function editorialLineHeader(theme: Theme): Theme['header'];
declare function centeredCalmHeader(theme: Theme): Theme['header'];
declare function practicalUtilityHeader(theme: Theme): Theme['header'];
declare function minimalTransparentHeader(theme: Theme): Theme['header'];
declare function transparentOverlayHeader(theme: Theme): Theme['header'];
declare function floatingGlassHeader(theme: Theme): Theme['header'];
export declare const headerLookCatalog: readonly [{
    readonly id: HeaderLookId;
    readonly label: "Clean base";
    readonly visualTreatment: "solid-neutral";
    readonly layoutBehavior: "sticky";
    readonly openingRequirement: "none";
    readonly compile: typeof cleanBaseHeader;
}, {
    readonly id: HeaderLookId;
    readonly label: "Brand solid";
    readonly visualTreatment: "solid-brand";
    readonly layoutBehavior: "sticky-shrink";
    readonly openingRequirement: "none";
    readonly compile: typeof solidBrandHeader;
}, {
    readonly id: HeaderLookId;
    readonly label: "Editorial line";
    readonly visualTreatment: "light-editorial";
    readonly layoutBehavior: "sticky";
    readonly openingRequirement: "none";
    readonly maxRecommendedNavItems: 6;
    readonly compile: typeof editorialLineHeader;
}, {
    readonly id: HeaderLookId;
    readonly label: "Centered calm";
    readonly visualTreatment: "light-editorial";
    readonly layoutBehavior: "normal-flow";
    readonly openingRequirement: "none";
    readonly maxRecommendedNavItems: 5;
    readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal", "square"];
    readonly compile: typeof centeredCalmHeader;
}, {
    readonly id: HeaderLookId;
    readonly label: "Practical utility";
    readonly visualTreatment: "solid-neutral";
    readonly layoutBehavior: "sticky-shrink";
    readonly openingRequirement: "none";
    readonly requiresProminentCta: true;
    readonly compile: typeof practicalUtilityHeader;
}, {
    readonly id: HeaderLookId;
    readonly label: "Minimal transparent";
    readonly visualTreatment: "minimal-transparent";
    readonly layoutBehavior: "normal-flow";
    readonly openingRequirement: "reserved-space-ok";
    readonly compile: typeof minimalTransparentHeader;
}, {
    readonly id: HeaderLookId;
    readonly label: "Transparent overlay";
    readonly visualTreatment: "transparent-overlay";
    readonly layoutBehavior: "fixed-overlay";
    readonly openingRequirement: "requires-image-hero-with-contrast-overlay";
    readonly maxRecommendedNavItems: 5;
    readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal"];
    readonly compile: typeof transparentOverlayHeader;
}, {
    readonly id: HeaderLookId;
    readonly label: "Floating glass";
    readonly visualTreatment: "floating-glass";
    readonly layoutBehavior: "fixed-floating";
    readonly openingRequirement: "requires-image-hero-with-contrast-overlay";
    readonly maxRecommendedNavItems: 5;
    readonly allowedLogoShapes: readonly ["none", "text-only", "horizontal"];
    readonly compile: typeof floatingGlassHeader;
}];
export declare const guaranteedFallbackHeaderLookId: HeaderLookId;
export declare function getHeaderLook(id: HeaderLookId): HeaderLookDefinition | null;
export declare function findHeaderLook(id: HeaderLookId): HeaderLookDefinition | undefined;
export declare function getHeaderLookOrThrow(id: HeaderLookId): HeaderLookDefinition;
export declare function headerLookRequiresImageHeroOpening(look: HeaderLookDefinition): boolean;
export declare function headerLookUsesOverlayLayout(look: HeaderLookDefinition): boolean;
export declare function resolveHeaderLook(input: HeaderLookResolutionInput): HeaderSelectionResult;
export declare function headerLookDiagnosticsFromSelectionResult(result: HeaderSelectionResult): HeaderLookDiagnostics;
export declare function headerLookRejectionReasonLabel(reason: RejectedHeaderLookReason): string;
export {};
