import { WellKnownSymbols } from './tree/symbols'; // Values that are non-recursive export type PrimitiveValue = | boolean | string | number | undefined | null | WellKnownSymbols; export type ErrorValue = | Error | AggregateError | EvalError | RangeError | ReferenceError | TypeError | SyntaxError | URIError; export type TypedArrayValue = | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array; export type BigIntTypedArrayValue = | BigInt64Array | BigUint64Array; export type SemiPrimitiveValue = | RegExp | Date | TypedArrayValue | BigIntTypedArrayValue | bigint; export type CommonServerValue = | PrimitiveValue | SemiPrimitiveValue | ErrorValue; export type ServerValue = | CommonServerValue | Array | readonly ServerValue[] | Iterable | { [key: string | number]: ServerValue } | { readonly [key: string | number]: ServerValue } | Set | Map; export type AsyncServerValue = | CommonServerValue | Array | readonly AsyncServerValue[] | Iterable | { [key: string | number]: AsyncServerValue } | { readonly [key: string | number]: AsyncServerValue } | Set | Map | PromiseLike; export type NonPrimitiveServerValue = T extends PrimitiveValue ? never : T; export type MaybePromise = T | Promise;