import { ExtendedRoutesConfig } from '../cli'; import { Tsoa, TsoaRoute } from '@tsoa/runtime'; export declare abstract class AbstractRouteGenerator { protected readonly metadata: Tsoa.Metadata; protected readonly options: Config; constructor(metadata: Tsoa.Metadata, options: Config); /** * This is the entrypoint for a generator to create a custom set of routes */ abstract GenerateCustomRoutes(): Promise; buildModels(): TsoaRoute.Models; protected pathTransformer(path: string): string; protected buildContext(): { authenticationModule: string | undefined; basePath: string; canImportByAlias: boolean; controllers: { actions: { fullPath: string; method: string; name: string; parameters: { [name: string]: TsoaRoute.ParameterSchema; }; path: string; uploadFile: boolean; uploadFileName: { name: string; maxCount: number | undefined; multiple: boolean; }[]; security: Tsoa.Security[]; successStatus: string | number; }[]; modulePath: string; name: string; path: string; }[]; environment: NodeJS.ProcessEnv; iocModule: string | undefined; minimalSwaggerConfig: { noImplicitAdditionalProperties: "ignore" | "throw-on-extras" | "silently-remove-extras"; bodyCoercion: boolean; }; models: TsoaRoute.Models; useFileUploads: boolean; multerOpts: Config["multerOpts"]; useSecurity: boolean; esm: boolean | undefined; }; protected getRelativeImportPath(fileLocation: string): string; protected buildPropertySchema(source: Tsoa.Property): TsoaRoute.PropertySchema; protected buildParameterSchema(source: Tsoa.Parameter): TsoaRoute.ParameterSchema; protected buildProperty(type: Tsoa.Type): TsoaRoute.PropertySchema; protected shouldWriteFile(fileName: string, content: string): Promise; }