import type { Constant } from 'hotscript';
import type { Piped } from './pipe.js';
import type { SerializableTransformer, Transformer } from './transformer.js';
interface JSONStringifierOptions {
    space?: string | number;
    replacer?: (this: any, key: string, value: any) => any;
    reviver?: (this: any, key: string, value: any) => any;
}
export interface JSONStringifierDTO {
    transformerId: 'jsonStringify';
    space?: string | number;
}
export declare class JSONStringifier implements SerializableTransformer<unknown, unknown, string, Constant<string>, JSONStringifierDTO> {
    _typeModifier: Constant<string>;
    transformerId: 'jsonStringify';
    space?: string | number;
    replacer?: (this: any, key: string, value: any) => any;
    reviver?: (this: any, key: string, value: any) => any;
    constructor({ space, replacer, reviver }?: JSONStringifierOptions);
    encode(formatted: unknown): string;
    decode(transformed: string): unknown;
    toJSON(): {
        space?: string | number | undefined;
        transformerId: "jsonStringify";
    };
    pipe<TRANSFORMER extends Transformer<string>>(transformer: TRANSFORMER): Piped<[this, TRANSFORMER]>;
}
type JSONStringify = (options?: JSONStringifierOptions) => JSONStringifier;
export declare const jsonStringify: JSONStringify;
export {};
