export declare type Key = string | number | symbol; export declare type Prop = Key; export declare type NonObject = string | number | bigint | symbol | boolean | Function | RegExp; export declare type Primitive = NonObject; export declare type RecordOf = Record; export interface ObjectOf { [K: string]: T; [K: number]: T; } export declare type InferRecordType = O extends { [K in Key]: infer U; } ? U : never; export declare type InferArrayType = A extends Arr ? U : never; export declare type Typify = { [K in keyof T]: T[K]; }; export declare type ValueOf = O[keyof O]; export declare type PlainObj = RecordOf; export declare type RecordRecursive = { [K in keyof O]: O[K] extends Arr ? Type : O[K] extends object ? RecordRecursive : Type; }; export declare type Levels = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; export declare type GetParam = N extends 1 ? F extends (arg: infer U, ...args: any[]) => any ? U : never : GetParam; export declare type VariableType = 'mutable' | 'readonly' | 'both'; export declare type Arr = Type extends 'both' ? Array | ReadonlyArray : Type extends 'mutable' ? Array : ReadonlyArray; export declare type TT = K | Arr; export declare type TT$ = K | Promise; export declare type FF = T | ((...args: Args) => T); export declare type BuildType = { [k in keyof Types]: T; }; export declare type FunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? K : never; }[keyof T]; export declare type FunctionProperties = Pick>; export declare type NonFunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T]; export declare type NonFunctionProperties = Pick>; export declare type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array | DataView; export declare type ExcludeKeysType = { [K in keyof T]: T[K] extends OmitType ? never : K; }[keyof T]; export declare type ExtractKeysType = { [K in keyof T]: T[K] extends IncludeType ? K : never; }[keyof T]; export declare type OmitType = Pick>; export declare type PickType = Omit>; export declare type PickTypeWithNever = { [K in keyof O]: Extract; }; export declare type ToString = { toString(): string; }; export declare type RequiredKeys = { [K in keyof T]-?: ({} extends { [P in K]: T[K]; } ? never : K); }[keyof T]; export declare type OptionalKeys = { [K in keyof T]-?: ({} extends { [P in K]: T[K]; } ? K : never); }[keyof T]; export declare type RequiredProps = Pick>; export declare type OptionalProps = Pick>; export declare type Requirize = { [P in keyof T]-?: T[P]; }; export declare type IfThenElse = T extends true ? U : V; export declare type Is = T extends U ? true : false; export declare type Or = T extends true ? true : U extends true ? true : false; export declare type And = T extends true ? U extends true ? true : false : false; export declare type IsObject = T extends {} ? T extends [] ? false : true : false; export declare type AlphabetLower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z'; export declare type AlphabetUpper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'; export declare type Numbers = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'; export declare type KebabCase = S extends `${infer Char}${infer Rest}` ? Rest extends Uncapitalize ? `${Uncapitalize}${KebabCase}` : `${Uncapitalize}-${KebabCase}` : S; export declare type CamelCase = S extends `${infer Char}-${infer Rest}` ? Rest extends Capitalize ? `${Char}-${CamelCase}` : `${Char}${CamelCase>}` : S; declare const NotDefinedSymbol: unique symbol; export declare type NotDefined = typeof NotDefinedSymbol; export declare type ExcludeExact = T extends U ? U extends T ? never : T : T; export declare type ExtractExact = T extends U ? U extends T ? T : never : never; export {};