import { type DateTimeRecognizer } from "./DateTime"; import type { RenderContext, Renderer } from "./Renderer"; import type { Option, OptionDefinition } from "./RendererOptions"; import { type SerializedRenderResult } from "./Source"; import type { Comment } from "./support/Comments"; import type { Type } from "./Type/Type"; import type { StringTypeMapping } from "./Type/TypeBuilderUtils"; import type { TypeGraph } from "./Type/TypeGraph"; import type { LanguageName, RendererOptions } from "./types"; export type MultiFileRenderResult = ReadonlyMap; export interface LanguageConfig { readonly displayName: string; readonly extension: string; readonly names: readonly string[]; } export declare abstract class TargetLanguage { readonly displayName: Config["displayName"]; readonly names: Config["names"]; readonly extension: Config["extension"]; constructor({ displayName, names, extension }: Config); protected abstract getOptions(): Record>; get optionDefinitions(): Array>; get cliOptionDefinitions(): { actual: Array>; display: Array>; }; get name(): (typeof this.names)[0]; protected abstract makeRenderer(renderContext: RenderContext, optionValues: RendererOptions): Renderer; renderGraphAndSerialize(typeGraph: TypeGraph, givenOutputFilename: string, alphabetizeProperties: boolean, leadingComments: Comment[] | undefined, rendererOptions: RendererOptions, indentation?: string): MultiFileRenderResult; protected get defaultIndentation(): string; get stringTypeMapping(): StringTypeMapping; get supportsOptionalClassProperties(): boolean; get supportsUnionsWithBothNumberTypes(): boolean; get supportsFullObjectType(): boolean; needsTransformerForType(_t: Type): boolean; get dateTimeRecognizer(): DateTimeRecognizer; }