/** * Borrowed from `type-fest` * Extract the keys from a type where the value type of the key extends the given `Condition`. */ export declare type ConditionalKeys = NonNullable<{ [Key in keyof Base]: Condition extends Base[Key] ? Key : never; }[keyof Base]>; /** * Taken from `type-fest` * Pick keys from the shape that matches the given `Condition`. */ export declare type ConditionalPick = Pick>; /** * Taken from `type-fest` * Get the values of a mapped types */ export declare type ValueOf = ObjectType[ValueType]; /** * Is the given type equal to the other given type? */ export declare type IsEqual = A extends B ? (B extends A ? true : false) : false; export declare type RequiredDeeply = DoRequireDeeply>; /** * Represents a POJO. Prevents from allowing arrays and functions. * * @remarks * * TypeScript interfaces will not be considered sub-types. */ export declare type PlainObject = { [x: string]: Primitive | object; }; /** * Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive). */ export declare type Primitive = null | undefined | string | number | boolean | symbol | bigint; declare type DoRequireDeeply = { [K in keyof T]-?: Exclude extends PlainObject ? DoRequireDeeply> : Exclude; }; export {};