import { InternalConstant, SerializedType } from "./constants.js"; import { IEnvironment } from "./serdestrium.js"; export declare abstract class Serializer { knownClasses: Map; knownSymbols: Map; knownObjects: Map; protected idProvider: Generator; constructor(environment?: IEnvironment); protected abstract emitInstance(instanceData: SerializedType): Generator; protected abstract emitObject(object: null | object): Generator; protected abstract emitArray(array: Array): Generator; protected abstract emitBinary(blob: ArrayBuffer): Generator; protected abstract emitReference(identifier: string): T; protected abstract emitNumber(number: number): T; protected abstract emitString(string: string): T; protected abstract emitBoolean(bool: boolean): T; protected abstract emitSymbol(symbol: symbol): T; protected abstract emitInternalConstant(constant: InternalConstant): T; stream(object: any): Generator; serialize(object: any): string | Uint8Array | undefined; private joinBuffer; protected preformat(element: any): any; protected preformatInstance(instance: any): SerializedType; protected preformatNumber(number: number): number | InternalConstant; protected preformatBigInt(int: BigInt): SerializedType; protected preformatTypedArray(typedArray: DataView): SerializedType; protected preformatDataView(view: DataView): SerializedType; protected preformatMap(map: Map): SerializedType; protected preformatSet(set: Set): SerializedType; protected preformatDate(date: Date): SerializedType; protected preformatError(error: Error): SerializedType; protected preformatRegEx(regEx: RegExp): SerializedType; }