import type { JSONSchema, Options } from '@apidevtools/json-schema-ref-parser'; import { Project, SourceFile, WriterFunction } from 'ts-morph'; export interface TypescriptInterfaceGeneratorOptions extends Options { suffix?: string; basePath?: string; addImports?: boolean; /** * false - if a schema property has an enum property a typescript enum will be created * true - else a typescript string tuple will be used */ useStringTuple?: boolean; } export declare class TypescriptInterfaceGenerator { private readonly schema; private readonly options; private readonly project; static isRequired(schema: JSONSchema, key: string): boolean; static coercePropertyKey(key: string): string; static unionType(array: Array): WriterFunction | string; static intersectionType(array: Array): WriterFunction | string; constructor(schema: JSONSchema, options?: TypescriptInterfaceGeneratorOptions, project?: Project | null); private bundledSchema; static bundleSchema(schema: T, options?: TypescriptInterfaceGeneratorOptions): Promise; build(name: string): Promise; buildSync(name: string, bundledSchema?: JSONSchema | null): SourceFile; private addType; private addTypeAlias; private addInterface; private buildPropertySignatureStructure; private recordType; private propertyTypeWriteFunction; private getFileName; private buildName; private resolveRefName; private resolveRef; bundleSchema(): Promise; }