export declare type OmitInferKey = { [K in keyof T as T extends R ? never : K]: T[K]; }; export declare type OmitInferValue = { [K in keyof T as T extends R ? never : K]: T[K]; }; export declare type ValueOf = Obj[keyof Obj]; export declare type OneOnly = { [key in Exclude]?: undefined; } & Pick; export declare type OneOfByKey = { [key in keyof Obj]: OneOnly; }; export declare type OneOf = ValueOf>; declare type IsOptional = { [K1 in Exclude]: T[K1]; } & { K?: T[K]; } extends T ? K : never; export declare type OptionalKeys = { [K in keyof T]: IsOptional; }[keyof T]; export {};