export interface ISerializeObject { serializeKey(key: string): void; serializeValue(value: U): void; serializeEntry(key: string, value: U): void; end(): T; } export declare abstract class SerializeObject implements ISerializeObject { abstract serializeKey(key: string): void; abstract serializeValue(value: U): void; abstract end(): T; serializeEntry(key: string, value: U): void; } export interface ISerializeIterable { serializeElement(value: U): void; end(): T; } export declare abstract class SerializeIterable implements ISerializeIterable { abstract serializeElement(value: U): void; abstract end(): T; } export interface ISerializer { serializeAny?(value: any): T; serializeBoolean(value: boolean): T; serializeNumber(value: number): T; serializeBigInt(value: bigint): T; serializeString(value: string): T; serializeSymbol(value: symbol): T; serializeNull(): T; serializeObject(): ISerializeObject; serializeIterable(): ISerializeIterable; serializeClass(name: string): ISerializeObject; } export declare class Serializer implements ISerializer { serializeIterable(): ISerializeIterable; serializeAny(_value: any): T; serializeBoolean(_value: boolean): T; serializeNumber(_value: number): T; serializeBigInt(_value: bigint): T; serializeString(_value: string): T; serializeSymbol(_value: symbol): T; serializeNull(): T; serializeObject(): ISerializeObject; serializeClass(_name: string): ISerializeObject; } export interface Serialize { (serializer: ISerializer, value: U): T; }