/**
 * Public SDK contracts for custom CSS inputs.
 *
 * These types mirror the shape validated by the blocks package, but are SDK-owned
 * so SDK consumers do not need to install `@riverbankcms/blocks` for typings.
 *
 * Keep these structurally compatible with:
 * - packages/blocks/src/theme/customCss/validation.ts
 * - packages/blocks/src/theme/customCss/atRuleValidation.ts
 */
export type CustomCssDeclarationsInput = Record<string, string>;
export type CustomCssRuleInput = {
    id: string;
    selector: string;
    declarations: CustomCssDeclarationsInput;
};
export type CustomCssNestedRuleInput = {
    selector: string;
    declarations: CustomCssDeclarationsInput;
};
export type KeyframesAtRuleInput = {
    id: string;
    type: 'keyframes';
    name: string;
    frames: Array<{
        offset: string;
        declarations: CustomCssDeclarationsInput;
    }>;
};
export type FontFaceAtRuleInput = {
    id: string;
    type: 'font-face';
    declarations: CustomCssDeclarationsInput;
};
export type MediaAtRuleInput = {
    id: string;
    type: 'media';
    query: string;
    rules: CustomCssNestedRuleInput[];
};
export type SupportsAtRuleInput = {
    id: string;
    type: 'supports';
    condition: string;
    rules: CustomCssNestedRuleInput[];
};
export type RawAtRuleInput = {
    id: string;
    type: 'raw';
    css: string;
};
export type CustomCssAtRuleInput = KeyframesAtRuleInput | FontFaceAtRuleInput | MediaAtRuleInput | SupportsAtRuleInput | RawAtRuleInput;
