import type { ArrayTemplate, BinTemplate, BooleanTemplate, FloatTemplate, IntegerTemplate, Int64Template, LiteralTemplate, MapTemplate, NumberTemplate, ObjectTemplate, OrTemplate, StringTemplate, Template } from './types'; export interface TemplateJsonOpts { /** * Sets the limit of maximum number of JSON nodes to generate. This is a soft * limit: once this limit is reached, no further optional values are generate * (optional object and map keys are not generated, arrays are generated with * their minimum required size). */ maxNodes?: number; } export declare class TemplateJson { readonly template: Template; readonly opts: TemplateJsonOpts; static readonly gen: (template?: Template, opts?: TemplateJsonOpts) => unknown; protected nodes: number; protected maxNodes: number; constructor(template?: Template, opts?: TemplateJsonOpts); gen(): unknown; protected generate(tpl: Template): unknown; protected minmax(min: number, max: number): number; protected generateArray(template: ArrayTemplate): unknown[]; protected generateObject(template: ObjectTemplate): Record; protected generateMap(template: MapTemplate): Record; protected generateString(template: StringTemplate): string; protected generateNumber([, min, max]: NumberTemplate): number; protected generateInteger(template: IntegerTemplate): number; protected generateInt64(template: Int64Template): bigint; protected generateFloat(template: FloatTemplate): number; protected generateBoolean(template: BooleanTemplate): boolean; protected generateBin(template: BinTemplate): Uint8Array; protected generateLiteral(template: LiteralTemplate): unknown; protected generateOr(template: OrTemplate): unknown; } //# sourceMappingURL=TemplateJson.d.ts.map