import { Properties } from 'csstype'; type OneOrMore = T | T[]; type PartialRecord = Partial>; type StringToBoolean = T extends 'true' | 'false' ? boolean : T; type ObjectKeyPicker = [keyof T] extends [never] ? Record : { [K in keyof T]?: StringToBoolean | undefined; }; type ObjectKeyArrayPicker = [keyof T] extends [never] ? Record : { [K in keyof T]?: OneOrMore> | undefined; }; type CssProperties = Properties & { [key: `--${string}`]: string | number; }; export type { CssProperties as C, ObjectKeyArrayPicker as O, PartialRecord as P, ObjectKeyPicker as a };