import type { RunContext } from "../Run"; import type { TargetLanguage } from "../TargetLanguage"; import type { TypeBuilder } from "../Type/TypeBuilder"; import type { LanguageName } from "../types"; import { type CompressedJSON } from "./CompressedJSON"; export interface Input { addSource: (source: T) => Promise; addSourceSync: (source: T) => void; addTypes: (ctx: RunContext, typeBuilder: TypeBuilder, inferMaps: boolean, inferEnums: boolean, fixedTopLevels: boolean) => Promise; addTypesSync: (ctx: RunContext, typeBuilder: TypeBuilder, inferMaps: boolean, inferEnums: boolean, fixedTopLevels: boolean) => void; readonly kind: string; readonly needIR: boolean; readonly needSchemaProcessing: boolean; singleStringSchemaSource: () => string | undefined; } export interface JSONSourceData { description?: string; name: string; samples: T[]; } export declare class JSONInput implements Input> { private readonly _compressedJSON; readonly kind: string; readonly needIR: boolean; readonly needSchemaProcessing: boolean; private readonly _topLevels; constructor(_compressedJSON: CompressedJSON); private addSample; private setDescription; private addSamples; addSource(source: JSONSourceData): Promise; addSourceSync(source: JSONSourceData): void; singleStringSchemaSource(): undefined; addTypes(ctx: RunContext, typeBuilder: TypeBuilder, inferMaps: boolean, inferEnums: boolean, fixedTopLevels: boolean): Promise; addTypesSync(_ctx: RunContext, typeBuilder: TypeBuilder, inferMaps: boolean, inferEnums: boolean, fixedTopLevels: boolean): void; } export declare function jsonInputForTargetLanguage(targetLanguage: LanguageName | TargetLanguage, languages?: TargetLanguage[], handleJSONRefs?: boolean): JSONInput; export declare class InputData { private _inputs; addInput(input: Input): void; private getOrAddInput; addSource(kind: string, source: T, makeInput: () => Input): Promise; addSourceSync(kind: string, source: T, makeInput: () => Input): void; addTypes(ctx: RunContext, typeBuilder: TypeBuilder, inferMaps: boolean, inferEnums: boolean, fixedTopLevels: boolean): Promise; addTypesSync(ctx: RunContext, typeBuilder: TypeBuilder, inferMaps: boolean, inferEnums: boolean, fixedTopLevels: boolean): void; get needIR(): boolean; get needSchemaProcessing(): boolean; singleStringSchemaSource(): string | undefined; }