export declare class Serializer { formatter: { name: string; tsName(): string; getParams(value: Type): string[]; hydrate(...str: string[]): Type; match(value: unknown): undefined | Type; }; static SEP: string; name: string; sep: string; blockStart: string; blockEnd: string; paramSep: string; constructor(formatter: { name: string; tsName(): string; getParams(value: Type): string[]; hydrate(...str: string[]): Type; match(value: unknown): undefined | Type; }); stringify(value: unknown): string | undefined; parse(value: string): Type | undefined; } export declare class DarchJSONConstructor { static serializers: (Serializer | Serializer | Serializer)[]; serializers: Serializer[]; constructor(); stringify: (value: any, options?: { handler?: ((utils: { self: DarchJSONConstructor; value: any; serializer?: Serializer | undefined; }) => string | undefined) | undefined; quoteStrings?: ((str: string) => string) | undefined; }) => string; parse: (input: string) => any; getSerializer(value: string): Serializer | undefined; tsName(value: string): string | undefined; } export declare type StringifyDefaultHandler = (payload: { value: any; }) => string | undefined; export declare function stringify(value: any, options?: { defaultHandler?: StringifyDefaultHandler; quoteStrings?: (str: string) => string; }): string | undefined; export declare const DarchJSON: DarchJSONConstructor;