import { Codegen } from '@jsonjoy.com/codegen'; import { JsExpression } from '@jsonjoy.com/codegen/lib/util/JsExpression'; import type { json_string } from '@jsonjoy.com/util/lib/json-brand'; import type { ArrType, MapType, ObjType, OrType, RefType, Type } from '../../type'; export type JsonEncoderFn = (value: T) => json_string; export declare class JsonTextCodegen { protected readonly type: Type; static readonly get: (this: unknown, type: Type, name?: string | undefined) => JsonEncoderFn; readonly codegen: Codegen; constructor(type: Type, name?: string); js(js: string): void; writeText(str: string): void; compile(): JsonEncoderFn; protected onArr(value: JsExpression, type: ArrType): void; protected onObj(value: JsExpression, objType: ObjType): void; protected onMap(value: JsExpression, type: MapType): void; protected onRef(value: JsExpression, ref: RefType): void; protected onOr(value: JsExpression, type: OrType): void; onNode(value: JsExpression, type: Type): void; } //# sourceMappingURL=JsonTextCodegen.d.ts.map