/**
 * Custom CSS Types
 *
 * Structured CSS rule types for safe, scoped theme customization.
 * These types replace freeform CSS strings with validated JSON structures.
 */
export type { CustomCssAtRuleBase, KeyframesAtRule, FontFaceAtRule, MediaAtRule, SupportsAtRule, RawAtRule, CustomCssAtRule, } from './atRuleTypes';
/**
 * A single custom CSS rule with validated selector and declarations.
 *
 * Security: Validated at schema level to prevent dangerous constructs
 * like @import, remote url(), and global selectors.
 */
export interface CustomCssRule {
    /** Unique identifier for deterministic diffs in propose/apply flow */
    id: string;
    /** CSS selector (validated - no :root, html, body, *) */
    selector: string;
    /** CSS declarations as property-value pairs */
    declarations: Record<string, string>;
}
/**
 * Block-scoped CSS rule with block kind association.
 * Extends CustomCssRule with the block kind it targets.
 */
export interface BlockCustomCssRule extends CustomCssRule {
    /** Block kind this rule applies to (matches data-block attribute) */
    blockKind: string;
}
type Brand<T, TBrand extends string> = T & {
    readonly __brand: TBrand;
};
export type ValidatedCssSelector = Brand<string, 'ValidatedCssSelector'>;
export type ValidatedCssDeclarationValue = Brand<string, 'ValidatedCssDeclarationValue'>;
export type ValidatedCssDeclarations = Readonly<Record<string, ValidatedCssDeclarationValue>>;
export type ValidatedCustomCssRule = Readonly<{
    id: string;
    selector: ValidatedCssSelector;
    declarations: ValidatedCssDeclarations;
}>;
export type ValidatedBlockCustomCssRule = Readonly<ValidatedCustomCssRule & {
    blockKind: string;
}>;
