export declare function uniqueId(): string; export type DeepPartial = T extends Array ? T : T extends object ? { [K in keyof T]?: DeepPartial; } : T; export type KVTuple = keyof T extends `${infer R}` ? (R extends keyof T ? [R, T[R]] : never) : never; export type AssertSameKey, T2 extends Record> = never; export type NestedKeyOf = { [Key in keyof T & (string | number)]: T[Key] extends object ? `${Key}` | `${Key}.${NestedKeyOf}` : `${Key}`; }[keyof T & (string | number)]; export type TypeOfPath = Path extends `${infer A}.${infer rest}` ? A extends keyof T ? TypeOfPath : never : Path extends keyof T ? T[Path] : never; export type ReplacePathOf = { [K in keyof T]: Path extends `${infer A}.${infer rest}` ? (A extends K ? ReplacePathOf : T[K]) : Path extends K ? U : T[K]; }; export declare const insert: (arr: T[], item: T, index: number) => T[]; export declare const remove: (arr: T[], index: number) => T[]; export declare const replace: (arr: T[], index: number, f: (item: T) => T) => T[]; export declare function mutPath, U>(item: T, path: P, mut: (x: TypeOfPath) => U): ReplacePathOf;