export type IteratorProcessAble = Iterable | Record; export type IterCallback, K = T extends Iterable ? number : keyof T & string> = (value: V, key: K, items: T) => C; export type ForEachCallback> = IterCallback; export type Optional = Partial; export type Nullable = { [P in keyof T]: T[P] | null; }; export type ExcludeField = { [Property in keyof Type as Exclude]: Type[Property]; }; export type RecordTree = Record>; export type Creator = () => T; export type Class = { new (...args: P): T; }; export type ParameterDecorator = (target: T, property: string | symbol, index: number) => void; export type PropertyDecorator = (target: T, property: P) => void; export type MethodDecorator = (target: T, property: P, descriptor: PropertyDescriptor) => void; export type ClassDecorator = (constructor: T) => void; export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export type ExtractInstance = T extends Class ? V : never; export type Mixed = Mixins extends (infer T)[] ? Class>> : never; export declare function constructor(target: any): T; export declare function mixins[], C extends any, P extends any[]>(Base: Class, ...classes: T): Mixed<[Class, ...T]>; export declare function isset(value: unknown): value is any; export declare function isString(value: unknown): value is string; export declare function isNumber(value: unknown): value is number; export declare function isBoolean(value: unknown): value is boolean; export declare function isArray(value: unknown): value is Array; export declare function isIterable(value: unknown): value is Iterable; export declare function isType(value: unknown, type: string): boolean; export declare function isObject(value: unknown): value is Record; export declare function isFunction(value: unknown): value is Function; export declare function foreach, K = T extends Iterable ? number : keyof T & string>(data: IteratorProcessAble & T | undefined, callback: ForEachCallback): void; export declare function foreach, K = T extends Iterable ? number : keyof T & string>(data: IteratorProcessAble & T | undefined, excludes: K[], callback: ForEachCallback): void; //# sourceMappingURL=utils.d.ts.map