import type { Theme } from '../schema';
import { type SiteChromeLookDiagnostics } from './customizableSurfaces';
import { type Brand } from './types';
export declare const footerLookIdValues: readonly ["footer-muted-grounding", "site-footer-brand-two-band"];
export type FooterLookIdValue = typeof footerLookIdValues[number];
export type FooterLookId = Brand<FooterLookIdValue, 'FooterLookId'>;
export declare function asFooterLookId(value: FooterLookIdValue): FooterLookId;
export type FooterLookDefinition = Readonly<{
    id: FooterLookId;
    label: string;
    maxRecommendedNavDensity?: Extract<FooterSelectionContext['navDensity'], 'sparse' | 'balanced'>;
    allowedContentPresence?: readonly Exclude<FooterSelectionContext['contentPresence'], 'unknown'>[];
    compile: (theme: Theme) => Theme['footer'];
}>;
export type FooterSelectionContext = Readonly<{
    navDensity: 'unknown' | 'sparse' | 'balanced' | 'dense';
    contentPresence: 'unknown' | 'default-footer' | 'footer-blocks' | 'default-and-blocks';
}>;
export type RejectedFooterLookReason = 'footer-nav-too-dense' | 'footer-content-incompatible';
export type RejectedFooterLook = Readonly<{
    lookId: FooterLookId;
    reasons: readonly RejectedFooterLookReason[];
}>;
export type FooterSelectionResult = Readonly<{
    selectedLookId: FooterLookId;
    selectedLook: FooterLookDefinition;
    footer: Theme['footer'];
    rejected: readonly RejectedFooterLook[];
}>;
export type FooterLookDiagnostics = SiteChromeLookDiagnostics<FooterLookId, RejectedFooterLookReason>;
export type FooterLookResolutionInput = Readonly<{
    theme: Theme;
    recommendedLookIds: readonly FooterLookId[];
    context?: Partial<FooterSelectionContext>;
}>;
export declare const defaultFooterSelectionContext: FooterSelectionContext;
export declare const guaranteedFallbackFooterLookId: FooterLookId;
/** Uses the generated theme's footer branch as-is: the canonical calm Look. */
declare function mutedGroundingFooter(theme: Theme): Theme['footer'];
/** Applies a high-contrast brand band with a darker full-bleed bottom bar. */
declare function brandTwoBandFooter(theme: Theme): Theme['footer'];
export declare const footerLookCatalog: readonly [{
    readonly id: FooterLookId;
    readonly label: "Muted grounding footer";
    readonly compile: typeof mutedGroundingFooter;
}, {
    readonly id: FooterLookId;
    readonly label: "Two-band brand footer";
    readonly maxRecommendedNavDensity: "balanced";
    readonly allowedContentPresence: readonly ["default-footer", "default-and-blocks"];
    readonly compile: typeof brandTwoBandFooter;
}];
export declare function getFooterLook(id: FooterLookId): FooterLookDefinition | null;
export declare function findFooterLook(id: FooterLookId): FooterLookDefinition | undefined;
export declare function getFooterLookOrThrow(id: FooterLookId): FooterLookDefinition;
export declare function resolveFooterLook(input: FooterLookResolutionInput): FooterSelectionResult;
export declare function footerLookDiagnosticsFromSelectionResult(result: FooterSelectionResult): FooterLookDiagnostics;
export declare function footerLookRejectionReasonLabel(reason: RejectedFooterLookReason): string;
export {};
