import type { ID } from './data/interface'; export declare function toID(text: any): ID; export declare function error(err: boolean, msg: string): void; export declare function assignWithout(a: { [key: string]: any; }, b: { [key: string]: any; }, exclude: Set): void; export type Primitive = string | number | boolean | bigint | symbol | undefined | null; export type Builtin = Primitive | Function | Date | Error | RegExp; export type IsTuple = T extends [infer A] ? T : T extends [infer A, infer B] ? T : T extends [infer A, infer B, infer C] ? T : T extends [infer A, infer B, infer C, infer D] ? T : T extends [infer A, infer B, infer C, infer D, infer E] ? T : never; export type DeepPartial = T extends Builtin ? T : T extends Map ? Map, DeepPartial> : T extends ReadonlyMap ? ReadonlyMap, DeepPartial> : T extends Set ? Set> : T extends ReadonlySet ? ReadonlySet> : T extends Array ? T extends IsTuple ? { [K in keyof T]?: DeepPartial; } : Array> : T extends Promise ? Promise> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; export declare function extend(this: any, ...args: any[]): any;