import { type AdvancedBlockDesignIntent, type ContentFrameIntent, type GeneratedBlockDesignIntent, type GeneratedContentFrameIntent, type GeneratedItemSurfaceIntent, type GeneratedSectionTransitionIntent, type GeneratedSurfaceIntent, type SiteStyleEmphasis, type SiteStyleItemSurfaceIntent, type SiteStyleSectionTransitionIntent, type SiteStyleSurfaceIntent, type UserBlockDesignIntent, type UserContentFrameIntent, type UserItemSurfaceIntent, type UserSectionTransitionIntent, type UserSurfaceIntent } from './types';
/**
 * Design option catalogs are source-specific whitelists for schema builders and UI
 * controls. They describe what a choice source may express; DesignResolutionPolicy
 * separately describes how the resolver responds when an expressed choice fails.
 */
export type DesignChoiceSource = GeneratedBlockDesignIntent['sectionSurface']['source'] | UserBlockDesignIntent['sectionSurface']['source'] | Exclude<AdvancedBlockDesignIntent['sectionSurface']['source'], UserBlockDesignIntent['sectionSurface']['source']>;
export type DetachedCustomCapability<TSource extends DesignChoiceSource> = TSource extends 'advanced' ? true : false;
export type DesignOptionCatalog<TSource extends DesignChoiceSource, TSurface extends SiteStyleSurfaceIntent, TContentFrame extends ContentFrameIntent, TItemSurface extends SiteStyleItemSurfaceIntent, TTransition extends SiteStyleSectionTransitionIntent> = Readonly<{
    source: TSource;
    sectionSurfaces: readonly TSurface[];
    contentFrames: readonly TContentFrame[];
    itemSurfaces: readonly TItemSurface[];
    transitions: readonly TTransition[];
    emphases: readonly SiteStyleEmphasis[];
    detachedCustom: DetachedCustomCapability<TSource>;
}>;
export type GeneratedDesignOptionCatalog = DesignOptionCatalog<'generated', GeneratedSurfaceIntent, GeneratedContentFrameIntent, GeneratedItemSurfaceIntent, GeneratedSectionTransitionIntent>;
export type UserDesignOptionCatalog = DesignOptionCatalog<'user', UserSurfaceIntent, UserContentFrameIntent, UserItemSurfaceIntent, UserSectionTransitionIntent>;
export type AdvancedDesignOptionCatalog = DesignOptionCatalog<'advanced', SiteStyleSurfaceIntent, ContentFrameIntent, SiteStyleItemSurfaceIntent, SiteStyleSectionTransitionIntent>;
export type DesignOptionCatalogForSource<TSource extends DesignChoiceSource> = TSource extends 'generated' ? GeneratedDesignOptionCatalog : TSource extends 'user' ? UserDesignOptionCatalog : TSource extends 'advanced' ? AdvancedDesignOptionCatalog : never;
export declare const generatedDesignOptionCatalog: {
    readonly source: "generated";
    readonly sectionSurfaces: readonly ["base", "muted-band", "accent-band", "hero-image"];
    readonly contentFrames: readonly [{
        readonly kind: "plain";
    }, Readonly<{
        kind: "panel";
        treatment: "inset";
    }>, Readonly<{
        kind: "panel";
        treatment: "raised";
    }>, Readonly<{
        kind: "flush-panel";
        treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
        bleed: "start";
    }>];
    readonly itemSurfaces: readonly ["none", "default", "flat", "outlined", "raised"];
    readonly transitions: readonly ["none", "soft-fade-short", "soft-fade-long"];
    readonly emphases: readonly ["low", "medium", "high"];
    readonly detachedCustom: false;
};
export declare const userDesignOptionCatalog: {
    readonly source: "user";
    readonly sectionSurfaces: readonly ["base", "muted-band", "accent-band", "hero-image"];
    readonly contentFrames: readonly [{
        readonly kind: "plain";
    }, Readonly<{
        kind: "panel";
        treatment: "inset";
    }>, Readonly<{
        kind: "panel";
        treatment: "raised";
    }>, Readonly<{
        kind: "flush-panel";
        treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
        bleed: "start";
    }>, Readonly<{
        kind: "panel";
        treatment: "editorial";
    }>, Readonly<{
        kind: "flush-panel";
        treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
        bleed: "end";
    }>, Readonly<{
        kind: "flush-panel";
        treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
        bleed: "both";
    }>];
    readonly itemSurfaces: readonly ["none", "default", "flat", "outlined", "raised", "inset", "editorial"];
    readonly transitions: readonly ["none", "soft-fade-short", "soft-fade-long", "wave-edge", "angle-edge"];
    readonly emphases: readonly ["low", "medium", "high"];
    readonly detachedCustom: false;
};
export declare const advancedDesignOptionCatalog: {
    readonly source: "advanced";
    readonly sectionSurfaces: readonly ["base", "muted-band", "accent-band", "hero-image"];
    readonly contentFrames: readonly [{
        readonly kind: "plain";
    }, Readonly<{
        kind: "panel";
        treatment: "inset";
    }>, Readonly<{
        kind: "panel";
        treatment: "raised";
    }>, Readonly<{
        kind: "flush-panel";
        treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
        bleed: "start";
    }>, Readonly<{
        kind: "panel";
        treatment: "editorial";
    }>, Readonly<{
        kind: "flush-panel";
        treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
        bleed: "end";
    }>, Readonly<{
        kind: "flush-panel";
        treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
        bleed: "both";
    }>];
    readonly itemSurfaces: readonly ["none", "default", "flat", "outlined", "raised", "inset", "editorial"];
    readonly transitions: readonly ["none", "soft-fade-short", "soft-fade-long", "wave-edge", "angle-edge"];
    readonly emphases: readonly ["low", "medium", "high"];
    readonly detachedCustom: true;
};
export declare const designOptionCatalogs: {
    readonly generated: {
        readonly source: "generated";
        readonly sectionSurfaces: readonly ["base", "muted-band", "accent-band", "hero-image"];
        readonly contentFrames: readonly [{
            readonly kind: "plain";
        }, Readonly<{
            kind: "panel";
            treatment: "inset";
        }>, Readonly<{
            kind: "panel";
            treatment: "raised";
        }>, Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "start";
        }>];
        readonly itemSurfaces: readonly ["none", "default", "flat", "outlined", "raised"];
        readonly transitions: readonly ["none", "soft-fade-short", "soft-fade-long"];
        readonly emphases: readonly ["low", "medium", "high"];
        readonly detachedCustom: false;
    };
    readonly user: {
        readonly source: "user";
        readonly sectionSurfaces: readonly ["base", "muted-band", "accent-band", "hero-image"];
        readonly contentFrames: readonly [{
            readonly kind: "plain";
        }, Readonly<{
            kind: "panel";
            treatment: "inset";
        }>, Readonly<{
            kind: "panel";
            treatment: "raised";
        }>, Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "start";
        }>, Readonly<{
            kind: "panel";
            treatment: "editorial";
        }>, Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "end";
        }>, Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "both";
        }>];
        readonly itemSurfaces: readonly ["none", "default", "flat", "outlined", "raised", "inset", "editorial"];
        readonly transitions: readonly ["none", "soft-fade-short", "soft-fade-long", "wave-edge", "angle-edge"];
        readonly emphases: readonly ["low", "medium", "high"];
        readonly detachedCustom: false;
    };
    readonly advanced: {
        readonly source: "advanced";
        readonly sectionSurfaces: readonly ["base", "muted-band", "accent-band", "hero-image"];
        readonly contentFrames: readonly [{
            readonly kind: "plain";
        }, Readonly<{
            kind: "panel";
            treatment: "inset";
        }>, Readonly<{
            kind: "panel";
            treatment: "raised";
        }>, Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "start";
        }>, Readonly<{
            kind: "panel";
            treatment: "editorial";
        }>, Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "end";
        }>, Readonly<{
            kind: "flush-panel";
            treatment: import("@riverbankcms/blocks").FlushFrameTreatment;
            bleed: "both";
        }>];
        readonly itemSurfaces: readonly ["none", "default", "flat", "outlined", "raised", "inset", "editorial"];
        readonly transitions: readonly ["none", "soft-fade-short", "soft-fade-long", "wave-edge", "angle-edge"];
        readonly emphases: readonly ["low", "medium", "high"];
        readonly detachedCustom: true;
    };
};
