export type DeepPartial = T extends (...args: unknown[]) => unknown ? T : T extends readonly (infer U)[] ? readonly DeepPartial[] : T extends object ? { [K in keyof T]?: DeepPartial; } : T; /** * Deep merge where overrides win. * Arrays are replaced. */ export declare function deepMerge(base: A, override?: B): A & B; export type Preset, Base extends DeepPartial> = >(override?: O) => Record; export declare function presetFor>(): >(id: Id, base: Base) => Preset;