export type DeepReadonly = T extends undefined | null | boolean | string | number | Function ? T : T extends [] ? readonly [] : T extends [infer U, ...infer Rest] ? readonly [DeepReadonly, ...DeepReadonly] : T extends Array ? ReadonlyArray> : T extends Map ? ReadonlyMap, DeepReadonly> : T extends Set ? ReadonlySet> : { readonly [K in keyof T]: DeepReadonly; }; export declare function has

(target: object, property: P): target is { [K in P]: unknown; };