interface IRemoteReferenceType { HANDLE: "handle"; SHARED_ID: "shareId"; } const RemoteReferenceType: IRemoteReferenceType; declare type LocalValueJSON = { type: string; value?: any; }; declare class LocalValue { constructor(type: string, value: T); type: string; value: T; static createStringValue(value: string): LocalValue; static createNumberValue(value: number): LocalValue; static createSpecialNumberValue(value: number): LocalValue; static createUndefinedValue(): LocalValue; static createNullValue(): LocalValue; static createBooleanValue(value: boolean): LocalValue; static createBigIntValue(value: BigInt): LocalValue; static createArrayValue(value: any[]): LocalValue; static createDateValue(value: Date): LocalValue; static createMapValue(map: Map): LocalValue>; static createObjectValue(map: Map): LocalValue>; static createRegularExpressionValue(value: RegExp): LocalValue; static createSetValue(value: Set): LocalValue>; toJson(): LocalValueJSON; } declare type RemoteValueJSON = { type?: string; handle?: string; internalId?: string; value?: T; sharedId?: string; }; type MappedInternalType = T extends Map ? ReferenceValue : T extends RegExp ? RegExpValue : T; declare class RemoteValue { constructor(remoteValue: RemoteValueJSON); type: string | null; handle: string | null; internalId: string | null; value: MappedInternalType | null; sharedId: string | null; deserializeValue(value: MappedInternalType | null, type: string): T; } declare type ReferenceValueJSON = { handle?: string; shareId?: string; }; declare class ReferenceValue { constructor(handle: string, shareId: string); handle: string | null; shareId?: string | null; asMap(): ReferenceValueJSON; } declare class RegExpValue { constructor(pattern: RegExp, flags: string | null); pattern: RegExp; flags: string | null; } export { LocalValue, ReferenceValue, RegExpValue, RemoteReferenceType, RemoteValue };