import type { None } from '../variables'; /** * Creates a deep clone of the value. */ export declare function clone(value: T): T; export declare function isRecord(input: unknown): input is Record; export declare function fromEntriesOptional>(...entries: [key: string, value: T | None][]): Record; /** * Recursively descends the record and returns a list of enumerable keys */ export declare function recursiveKeyList(record: Record, filter?: (value: unknown) => boolean, base?: string): string[]; /** * Recursively index into a record. * * Throws if a child cannot be indexed into. */ export declare function indexRecord>(input: Record, key: string[]): T | undefined; export declare type RecursiveReadonly = { readonly [P in keyof T]: RecursiveReadonly; }; export declare function deepFreeze(o: T): RecursiveReadonly;