export interface Boxed { __boxed: ''; value: T; } export declare type UnboxedObject = { [prop in keyof T]: Unboxed; }; export declare type Unboxed = T extends Boxed ? any : T extends Boxed ? U : T extends symbol[] ? any : T extends symbol ? any : T extends undefined ? undefined : T extends null ? null : T extends string ? string : T extends number ? number : T extends boolean ? boolean : UnboxedObject; export declare function isBoxed(value: any): value is Boxed; export declare function box(value: T): Boxed; export declare function unbox(value: T): Unboxed;