import { type BlockDesignPlan, type ContentFrameIntent, type EyebrowTreatment, type HeroLegibilityStrategy, type ImageSurfaceMotion, type ImageSurfaceTreatment, type NonEmptyReadonlyArray, type SectionHeightIntent, type SiteStyleEmphasis, type SiteStyleItemSurfaceIntent, type SiteStyleSectionTransitionIntent, type SiteStyleSurfaceIntent, type TestimonialCardTreatment } from './types';
import type { BlockLayoutDesignProfile, BlockLayoutFamily } from './blockFlow';
import type { Theme } from '../schema';
export type AppearancePresetTarget = 'hero' | 'body-text' | 'offerings' | 'events' | 'media-text' | 'testimonials' | 'faq' | 'contact-form' | 'cta' | 'site-header' | 'site-footer';
export type BlockAppearanceDesign = Readonly<{
    sectionSurface: SiteStyleSurfaceIntent;
    contentFrame: ContentFrameIntent;
    itemSurface: SiteStyleItemSurfaceIntent;
    transitionAfter: SiteStyleSectionTransitionIntent;
    emphasis: SiteStyleEmphasis;
    sectionHeight?: SectionHeightIntent;
    heroLegibility?: HeroLegibilityStrategy;
    imageSurfaceTreatment?: ImageSurfaceTreatment;
    imageSurfaceMotion?: ImageSurfaceMotion;
    testimonialCardTreatment?: TestimonialCardTreatment;
    eyebrowTreatment?: EyebrowTreatment;
}>;
export type BlockAppearancePresetConstraints = Readonly<{
    layoutFamilies?: readonly BlockLayoutFamily[];
    layoutVariantKeys?: readonly string[];
}>;
export type BlockAppearanceOptionDesignPatch = Readonly<Partial<Pick<BlockAppearanceDesign, 'heroLegibility' | 'imageSurfaceTreatment' | 'imageSurfaceMotion' | 'sectionHeight' | 'testimonialCardTreatment' | 'eyebrowTreatment'>>>;
export type BlockAppearanceLayoutDesignPatch = BlockAppearanceOptionDesignPatch;
export type BlockAppearanceOption = Readonly<{
    id: string;
    label: string;
    designPatch: BlockAppearanceOptionDesignPatch;
}>;
export type BlockAppearanceOptionGroup = Readonly<{
    id: string;
    label: string;
    options: NonEmptyReadonlyArray<BlockAppearanceOption>;
    selectedOptionId: string;
}>;
export type BlockAppearanceLayoutPatch = Readonly<{
    constraints: BlockAppearancePresetConstraints;
    designPatch: BlockAppearanceLayoutDesignPatch;
}>;
export type BlockAppearancePreset = Readonly<{
    kind: 'block-design';
    id: string;
    target: Exclude<AppearancePresetTarget, 'site-header' | 'site-footer'>;
    label: string;
    blockKinds: readonly string[];
    constraints?: BlockAppearancePresetConstraints;
    /**
     * Author-time curated defaults. Page design intent pins only the preset today;
     * option-level user pinning needs a separate persistence model before these
     * become editable controls.
     */
    optionGroups?: readonly BlockAppearanceOptionGroup[];
    /**
     * Layout-aware defaults keep a Look's visual recipe stable while preventing
     * contradictions such as compact/micro layouts inheriting immersive height.
     */
    layoutPatches?: readonly BlockAppearanceLayoutPatch[];
    design: BlockAppearanceDesign;
}>;
export type HeaderSurfaceToken = 'primary' | 'secondary' | 'accent';
export type HeaderTextColorToken = 'primaryForeground' | 'background' | 'surface' | 'text';
export type HeaderNavTreatment = 'minimal' | 'uppercase-underline';
export type HeaderDropdownTreatment = 'surface' | 'matched-solid';
export type HeaderCtaTreatment = 'default' | 'primary' | 'secondary' | 'inverted' | 'outline' | 'ghost';
export type HeaderBehavior = 'default' | 'sticky-shrink';
export type FooterSurfaceToken = 'primary' | 'secondary' | 'accent';
export type FooterBrandShade = 'base' | '800' | '900';
export type FooterTextColorToken = 'primaryForeground' | 'secondaryForeground' | 'accentForeground' | 'background' | 'surface' | 'text';
export type SiteHeaderAppearance = Readonly<{
    surface: Readonly<{
        kind: 'brand-solid';
        token: HeaderSurfaceToken;
        textColorToken: HeaderTextColorToken;
    }> | Readonly<{
        kind: 'neutral-solid';
        token: 'surface' | 'background';
        textColorToken: 'text';
    }>;
    navTreatment: HeaderNavTreatment;
    dropdownTreatment: HeaderDropdownTreatment;
    ctaTreatment: HeaderCtaTreatment;
    behavior: HeaderBehavior;
}>;
export type SiteFooterAppearance = Readonly<{
    kind: 'grounding';
    surface: Extract<SiteStyleSurfaceIntent, 'base' | 'muted-band' | 'accent-band'>;
    emphasis: SiteStyleEmphasis;
}> | Readonly<{
    kind: 'brand-two-band';
    surface: Readonly<{
        token: FooterSurfaceToken;
        shade: FooterBrandShade;
        textColorToken: FooterTextColorToken;
    }>;
    bottomBand: Readonly<{
        token: FooterSurfaceToken;
        shade: FooterBrandShade;
        textColorToken: FooterTextColorToken;
    }>;
    emphasis: SiteStyleEmphasis;
}>;
export type SiteHeaderAppearancePreset = Readonly<{
    kind: 'site-chrome';
    id: string;
    target: 'site-header';
    label: string;
    header: SiteHeaderAppearance;
}>;
export type SiteFooterAppearancePreset = Readonly<{
    kind: 'site-chrome';
    id: string;
    target: 'site-footer';
    label: string;
    footer: SiteFooterAppearance;
}>;
export type SiteChromeAppearancePreset = SiteHeaderAppearancePreset | SiteFooterAppearancePreset;
export type AppearancePreset = BlockAppearancePreset | SiteChromeAppearancePreset;
export type SiteChromeAppearancePresetTarget = SiteChromeAppearancePreset['target'];
export type BlockAppearancePresetTarget = BlockAppearancePreset['target'];
export declare const appearancePresetTargets: readonly ["hero", "body-text", "offerings", "events", "media-text", "testimonials", "faq", "contact-form", "cta", "site-header", "site-footer"];
export declare function layoutProfileSupportsConstraints(profile: BlockLayoutDesignProfile, constraints: BlockAppearancePresetConstraints): boolean;
export declare function resolveBlockAppearancePresetDesign(preset: BlockAppearancePreset, layoutProfile?: BlockLayoutDesignProfile | null): BlockAppearanceDesign;
export declare function resolveHeaderCtaVariant(theme: Theme, treatment: HeaderCtaTreatment): string | undefined;
export declare function compileSiteHeaderAppearancePreset(preset: SiteHeaderAppearancePreset, theme: Theme): Theme['header'];
export declare function compileSiteFooterAppearancePreset(preset: SiteFooterAppearancePreset, theme: Theme): Theme['footer'];
export declare const appearancePresets: readonly [{
    readonly kind: "block-design";
    readonly id: "hero-immersive-image";
    readonly target: "hero";
    readonly label: "Immersive image hero";
    readonly blockKinds: readonly ["block.hero"];
    readonly constraints: {
        readonly layoutFamilies: readonly ["centered", "compact"];
    };
    readonly design: {
        readonly sectionSurface: "hero-image";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
        readonly sectionHeight: "hero";
        readonly imageSurfaceTreatment: {
            readonly kind: "neutral-wash";
        };
    };
}, {
    readonly kind: "block-design";
    readonly id: "hero-brand-scrim";
    readonly target: "hero";
    readonly label: "Brand scrim image hero";
    readonly blockKinds: readonly ["block.hero"];
    readonly constraints: {
        readonly layoutFamilies: readonly ["centered", "compact"];
    };
    readonly optionGroups: readonly [{
        readonly id: "image-surface-treatment";
        readonly label: "Treatment";
        readonly selectedOptionId: "brand-scrim-primary";
        readonly options: readonly [{
            readonly id: "brand-scrim-primary";
            readonly label: "Brand scrim";
            readonly designPatch: {
                readonly imageSurfaceTreatment: {
                    readonly kind: "brand-scrim";
                    readonly token: "primary";
                };
            };
        }, {
            readonly id: "neutral-scrim";
            readonly label: "Neutral scrim";
            readonly designPatch: {
                readonly imageSurfaceTreatment: {
                    readonly kind: "neutral-scrim";
                };
            };
        }];
    }];
    readonly layoutPatches: readonly [{
        readonly constraints: {
            readonly layoutVariantKeys: readonly ["micro"];
        };
        readonly designPatch: {
            readonly sectionHeight: "banner";
        };
    }];
    readonly design: {
        readonly sectionSurface: "hero-image";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
        readonly sectionHeight: "immersive";
        readonly imageSurfaceTreatment: {
            readonly kind: "brand-scrim";
            readonly token: "primary";
        };
    };
}, {
    readonly kind: "block-design";
    readonly id: "hero-brand-scrim-fixed-frame";
    readonly target: "hero";
    readonly label: "Fixed-frame brand scrim hero";
    readonly blockKinds: readonly ["block.hero"];
    readonly constraints: {
        readonly layoutFamilies: readonly ["centered", "compact"];
    };
    readonly optionGroups: readonly [{
        readonly id: "image-surface-treatment";
        readonly label: "Treatment";
        readonly selectedOptionId: "brand-scrim-primary";
        readonly options: readonly [{
            readonly id: "brand-scrim-primary";
            readonly label: "Brand scrim";
            readonly designPatch: {
                readonly imageSurfaceTreatment: {
                    readonly kind: "brand-scrim";
                    readonly token: "primary";
                };
            };
        }, {
            readonly id: "neutral-scrim";
            readonly label: "Neutral scrim";
            readonly designPatch: {
                readonly imageSurfaceTreatment: {
                    readonly kind: "neutral-scrim";
                };
            };
        }];
    }];
    readonly layoutPatches: readonly [{
        readonly constraints: {
            readonly layoutVariantKeys: readonly ["micro"];
        };
        readonly designPatch: {
            readonly sectionHeight: "banner";
        };
    }];
    readonly design: {
        readonly sectionSurface: "hero-image";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
        readonly sectionHeight: "immersive";
        readonly imageSurfaceTreatment: {
            readonly kind: "brand-scrim";
            readonly token: "primary";
        };
        readonly imageSurfaceMotion: "fixed-frame";
        readonly eyebrowTreatment: "accent-pill-bounce";
    };
}, {
    readonly kind: "block-design";
    readonly id: "hero-contained-intro";
    readonly target: "hero";
    readonly label: "Contained intro hero";
    readonly blockKinds: readonly ["block.hero"];
    readonly design: {
        readonly sectionSurface: "muted-band";
        readonly contentFrame: Readonly<{
            kind: "panel";
            treatment: "inset";
        }>;
        readonly itemSurface: "none";
        readonly transitionAfter: "none";
        readonly emphasis: "high";
    };
}, {
    readonly kind: "block-design";
    readonly id: "body-text-editorial-intro";
    readonly target: "body-text";
    readonly label: "Editorial intro copy";
    readonly blockKinds: readonly ["block.body-text"];
    readonly design: {
        readonly sectionSurface: "base";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
    };
}, {
    readonly kind: "block-design";
    readonly id: "offerings-calm-list";
    readonly target: "offerings";
    readonly label: "Calm offerings list";
    readonly blockKinds: readonly ["block.event-listing", "block.event-calendar", "block.event-spotlight", "block.product-list"];
    readonly design: {
        readonly sectionSurface: "muted-band";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "medium";
    };
}, {
    readonly kind: "block-design";
    readonly id: "events-base-calendar";
    readonly target: "events";
    readonly label: "Base event calendar";
    readonly blockKinds: readonly ["block.event-calendar", "block.event-listing"];
    readonly design: {
        readonly sectionSurface: "base";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "none";
        readonly emphasis: "medium";
    };
}, {
    readonly kind: "block-design";
    readonly id: "schedule-details-accent-section";
    readonly target: "events";
    readonly label: "Accent schedule details";
    readonly blockKinds: readonly ["block.event-details", "block.course-details"];
    readonly design: {
        readonly sectionSurface: "accent-band";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "none";
        readonly emphasis: "medium";
    };
}, {
    readonly kind: "block-design";
    readonly id: "media-text-flush-feature";
    readonly target: "media-text";
    readonly label: "Flush media feature";
    readonly blockKinds: readonly ["block.media-text"];
    readonly design: {
        readonly sectionSurface: "muted-band";
        readonly contentFrame: Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "start";
        }>;
        readonly itemSurface: "none";
        readonly transitionAfter: "none";
        readonly emphasis: "high";
    };
}, {
    readonly kind: "block-design";
    readonly id: "media-text-quiet-story";
    readonly target: "media-text";
    readonly label: "Quiet media story";
    readonly blockKinds: readonly ["block.media-text"];
    readonly design: {
        readonly sectionSurface: "base";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "medium";
    };
}, {
    readonly kind: "block-design";
    readonly id: "testimonials-carded-proof";
    readonly target: "testimonials";
    readonly label: "Carded social proof";
    readonly blockKinds: readonly ["block.testimonials"];
    readonly design: {
        readonly sectionSurface: "base";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "default";
        readonly transitionAfter: "none";
        readonly emphasis: "medium";
    };
}, {
    readonly kind: "block-design";
    readonly id: "testimonials-contained-proof";
    readonly target: "testimonials";
    readonly label: "Contained social proof";
    readonly blockKinds: readonly ["block.testimonials"];
    readonly design: {
        readonly sectionSurface: "muted-band";
        readonly contentFrame: Readonly<{
            kind: "panel";
            treatment: "raised";
        }>;
        readonly itemSurface: "raised";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
    };
}, {
    readonly kind: "block-design";
    readonly id: "testimonials-dark-proof";
    readonly target: "testimonials";
    readonly label: "Dark proof panel";
    readonly blockKinds: readonly ["block.testimonials"];
    readonly design: {
        readonly sectionSurface: "accent-band";
        readonly contentFrame: Readonly<{
            kind: "panel";
            treatment: "raised";
        }>;
        readonly itemSurface: "raised";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
    };
}, {
    readonly kind: "block-design";
    readonly id: "testimonials-accent-quote-proof";
    readonly target: "testimonials";
    readonly label: "Accent quote proof";
    readonly blockKinds: readonly ["block.testimonials"];
    readonly design: {
        readonly sectionSurface: "accent-band";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "raised";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
        readonly testimonialCardTreatment: "accent-quote";
    };
}, {
    readonly kind: "block-design";
    readonly id: "faq-contained-help";
    readonly target: "faq";
    readonly label: "Contained help panel";
    readonly blockKinds: readonly ["block.faq"];
    readonly design: {
        readonly sectionSurface: "muted-band";
        readonly contentFrame: Readonly<{
            kind: "panel";
            treatment: "inset";
        }>;
        readonly itemSurface: "default";
        readonly transitionAfter: "none";
        readonly emphasis: "low";
    };
}, {
    readonly kind: "block-design";
    readonly id: "contact-form-panel";
    readonly target: "contact-form";
    readonly label: "Contact form panel";
    readonly blockKinds: readonly ["block.form"];
    readonly design: {
        readonly sectionSurface: "muted-band";
        readonly contentFrame: Readonly<{
            kind: "panel";
            treatment: "raised";
        }>;
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "medium";
    };
}, {
    readonly kind: "block-design";
    readonly id: "contact-form-dark-card";
    readonly target: "contact-form";
    readonly label: "Dark form card";
    readonly blockKinds: readonly ["block.form"];
    readonly design: {
        readonly sectionSurface: "accent-band";
        readonly contentFrame: Readonly<{
            kind: "panel";
            treatment: "raised";
        }>;
        readonly itemSurface: "none";
        readonly transitionAfter: "soft-fade-short";
        readonly emphasis: "high";
    };
}, {
    readonly kind: "block-design";
    readonly id: "cta-accent-band";
    readonly target: "cta";
    readonly label: "Accent CTA band";
    readonly blockKinds: readonly ["block.cta-full"];
    readonly design: {
        readonly sectionSurface: "accent-band";
        readonly contentFrame: {
            readonly kind: "plain";
        };
        readonly itemSurface: "none";
        readonly transitionAfter: "none";
        readonly emphasis: "high";
    };
}, {
    readonly kind: "site-chrome";
    readonly id: "header-clean-base";
    readonly target: "site-header";
    readonly label: "Clean base header";
    readonly header: {
        readonly surface: {
            readonly kind: "neutral-solid";
            readonly token: "surface";
            readonly textColorToken: "text";
        };
        readonly navTreatment: "minimal";
        readonly dropdownTreatment: "surface";
        readonly ctaTreatment: "default";
        readonly behavior: "default";
    };
}, {
    readonly kind: "site-chrome";
    readonly id: "site-header-brand-solid-inverted-cta";
    readonly target: "site-header";
    readonly label: "Brand solid header with inverted CTA";
    readonly header: {
        readonly surface: {
            readonly kind: "brand-solid";
            readonly token: "primary";
            readonly textColorToken: "primaryForeground";
        };
        readonly navTreatment: "uppercase-underline";
        readonly dropdownTreatment: "matched-solid";
        readonly ctaTreatment: "inverted";
        readonly behavior: "sticky-shrink";
    };
}, {
    readonly kind: "site-chrome";
    readonly id: "footer-muted-grounding";
    readonly target: "site-footer";
    readonly label: "Muted grounding footer";
    readonly footer: {
        readonly kind: "grounding";
        readonly surface: "muted-band";
        readonly emphasis: "low";
    };
}, {
    readonly kind: "site-chrome";
    readonly id: "site-footer-brand-two-band";
    readonly target: "site-footer";
    readonly label: "Two-band brand footer";
    readonly footer: {
        readonly kind: "brand-two-band";
        readonly surface: {
            readonly token: "primary";
            readonly shade: "800";
            readonly textColorToken: "primaryForeground";
        };
        readonly bottomBand: {
            readonly token: "primary";
            readonly shade: "900";
            readonly textColorToken: "primaryForeground";
        };
        readonly emphasis: "high";
    };
}];
export type BlockAppearancePresetBlockKind = Extract<(typeof appearancePresets)[number], {
    kind: 'block-design';
}>['blockKinds'][number];
export declare function getAppearancePresetsForTarget(target: SiteChromeAppearancePresetTarget): readonly SiteChromeAppearancePreset[];
export declare function getAppearancePresetsForTarget(target: BlockAppearancePresetTarget): readonly BlockAppearancePreset[];
export declare function blockDesignPlanFromAppearancePreset<TBlockId extends string, TPurpose extends string>(preset: BlockAppearancePreset, input: Readonly<{
    blockId: TBlockId;
    blockKind: string;
    purpose: TPurpose;
    layoutProfile?: BlockLayoutDesignProfile | null;
}>): BlockDesignPlan<TBlockId, TPurpose>;
