import type { ComponentRegistration } from './component-registry'; /** * Primitive value accepted inside any token map. */ export type TokenValue = string | number; /** * Recursive structure describing token groups (colors, spacing, etc.). */ export interface TokenGroup { [token: string]: TokenValue | TokenGroup; } /** * Public token contract. The index signature allows authors to define custom * buckets without losing type-safety in the remainder of the framework. */ export interface FrameworkTokens { colors?: TokenGroup; spacing?: TokenGroup; typography?: TokenGroup; motion?: TokenGroup; shadows?: TokenGroup; radii?: TokenGroup; zIndex?: TokenGroup; layers?: TokenGroup; [group: string]: TokenGroup | undefined; } /** * Metadata describing a single Houdini worklet module. */ export interface WorkletModuleConfig { /** URL to the module entry file. */ url: string; /** Optional friendly name that will surface in diagnostics. */ name?: string; /** Predicate executed before attempting to load the module. */ when?: () => boolean; } /** * Grouping of worklet modules by family. */ export interface WorkletConfig { paint?: WorkletModuleConfig[]; animation?: WorkletModuleConfig[]; layout?: WorkletModuleConfig[]; } /** * Author-facing configuration surface. */ export interface FrameworkConfig { tokens?: FrameworkTokens; components?: Array; worklets?: WorkletConfig; autoRegisterComponents?: boolean; disablePolyfills?: boolean; } export type PartialFrameworkConfig = DeepPartial; /** * Fully resolved configuration consumed by the runtime. */ export interface FluentConfigResult extends FrameworkConfig { tokens: FrameworkTokens; components: ComponentRegistration[]; worklets: Required; autoRegisterComponents: boolean; disablePolyfills: boolean; } type Primitive = string | number | boolean | null | undefined; type DeepPartial = { [K in keyof T]?: T[K] extends Primitive ? T[K] : T[K] extends Array ? Array> : DeepPartial; }; /** * Creates a fully resolved configuration object. User supplied configuration is * deeply merged with the defaults, validated, then frozen to prevent accidental * mutations during runtime. */ export declare function defineConfig(config?: PartialFrameworkConfig): FluentConfigResult; export declare function resolveConfig(config?: FrameworkConfig | PartialFrameworkConfig): FluentConfigResult; export {}; //# sourceMappingURL=config.d.ts.map