import { OpenAPIObject, SchemaObject, ReferenceObject, ParameterObject, RequestBodyObject, ResponsesObject, OperationObject } from 'openapi3-ts'; export declare class GenConfig { /** 生成目录 */ sdkDir: string; /** Service模板文件路径 */ templatePath?: string; /** Interface模板文件路径 */ interfaceTemplatePath?: string; /** 生成请求库 */ requestLib?: boolean; /** filename style, true 为大驼峰,lower 为小驼峰 */ camelCase?: boolean | 'lower'; /** gen type */ type?: 'ts' | 'js'; /** 生成 Service 类型 */ serviceType?: 'function' | 'class'; /** 复杂类型命名空间 */ namespace?: string; /** 数据处理钩子 */ hook?: { /** 自定义函数名称 */ customFunctionName?: (data: OperationObject) => string; /** 自定义类名 */ customClassName?: (tagName: string) => string; }; /** path过滤 */ filter?: (RegExp | ((data: APIDataType) => boolean))[]; } export interface APIDataType extends OperationObject { path: string; method: string; } export interface TagAPIDataType { [tag: string]: APIDataType[]; } export declare class ServiceGenerator { protected config: GenConfig; protected openAPIData: OpenAPIObject; protected apiData: TagAPIDataType; constructor(config: GenConfig, openAPIData: OpenAPIObject); genFile(): void; protected genRequestLib(): void; protected getInterfaceTP(): { typeName: string; type: string; props: { name: string; type: string; desc: string; required: boolean; nullable?: boolean; discriminator?: import("openapi3-ts").DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: import("openapi3-ts").XmlObject; externalDocs?: import("openapi3-ts").ExternalDocumentationObject; example?: any; examples?: any[]; deprecated?: boolean; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; properties?: { [propertyName: string]: SchemaObject | ReferenceObject; }; additionalProperties?: boolean | SchemaObject | ReferenceObject; description?: string; format?: string; default?: any; title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; enum?: any[]; }[]; }[]; protected getServiceTP(): { genType: "ts" | "js"; className: string; instanceName: string; list: { functionName: string; path: string; method: string; desc: string; hasHeader: boolean; params: { [key: string]: ParameterObject[]; }; body: { propertiesList: { key: string; schema: { type: string; nullable?: boolean; discriminator?: import("openapi3-ts").DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: import("openapi3-ts").XmlObject; externalDocs?: import("openapi3-ts").ExternalDocumentationObject; example?: any; examples?: any[]; deprecated?: boolean; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; properties?: { [propertyName: string]: SchemaObject | ReferenceObject; }; additionalProperties?: boolean | SchemaObject | ReferenceObject; description?: string; format?: string; default?: any; title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; required?: string[]; enum?: any[]; } | { type: string; $ref: string; }; }[]; nullable?: boolean; discriminator?: import("openapi3-ts").DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: import("openapi3-ts").XmlObject; externalDocs?: import("openapi3-ts").ExternalDocumentationObject; example?: any; examples?: any[]; deprecated?: boolean; type?: string; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; properties?: { [propertyName: string]: SchemaObject | ReferenceObject; }; additionalProperties?: boolean | SchemaObject | ReferenceObject; description?: string; format?: string; default?: any; title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; required?: string[]; enum?: any[]; mediaType: string; } | { mediaType: string; type: string; }; response: { mediaType: string; type: string; }; tags?: string[]; summary?: string; description?: string; externalDocs?: import("openapi3-ts").ExternalDocumentationObject; operationId?: string; parameters?: (ReferenceObject | ParameterObject)[]; requestBody?: ReferenceObject | RequestBodyObject; responses: ResponsesObject; callbacks?: import("openapi3-ts").CallbacksObject; deprecated?: boolean; security?: import("openapi3-ts").SecurityRequirementObject[]; servers?: import("openapi3-ts").ServerObject[]; }[]; }[]; protected getBodyTP(requestBody?: any): { propertiesList: { key: string; schema: { type: string; nullable?: boolean; discriminator?: import("openapi3-ts").DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: import("openapi3-ts").XmlObject; externalDocs?: import("openapi3-ts").ExternalDocumentationObject; example?: any; examples?: any[]; deprecated?: boolean; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; properties?: { [propertyName: string]: SchemaObject | ReferenceObject; }; additionalProperties?: boolean | SchemaObject | ReferenceObject; description?: string; format?: string; default?: any; title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; required?: string[]; enum?: any[]; } | { type: string; $ref: string; }; }[]; nullable?: boolean; discriminator?: import("openapi3-ts").DiscriminatorObject; readOnly?: boolean; writeOnly?: boolean; xml?: import("openapi3-ts").XmlObject; externalDocs?: import("openapi3-ts").ExternalDocumentationObject; example?: any; examples?: any[]; deprecated?: boolean; type?: string; allOf?: (SchemaObject | ReferenceObject)[]; oneOf?: (SchemaObject | ReferenceObject)[]; anyOf?: (SchemaObject | ReferenceObject)[]; not?: SchemaObject | ReferenceObject; items?: SchemaObject | ReferenceObject; properties?: { [propertyName: string]: SchemaObject | ReferenceObject; }; additionalProperties?: boolean | SchemaObject | ReferenceObject; description?: string; format?: string; default?: any; title?: string; multipleOf?: number; maximum?: number; exclusiveMaximum?: boolean; minimum?: number; exclusiveMinimum?: boolean; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; required?: string[]; enum?: any[]; mediaType: string; } | { mediaType: string; type: string; }; protected getResponseTP(responses?: ResponsesObject): { mediaType: string; type: string; }; protected getParamsTP(parameters?: (ParameterObject | ReferenceObject)[]): { [key: string]: ParameterObject[]; }; protected genFileFromTemplate(fileName: string, type: 'interface' | 'service', params: any): void; protected writeFile(fileName: string, content: string): void; protected getTemplate(type: 'interface' | 'service'): string; protected resolveRefObject(refObject: any): T; protected getRefName(refObject: any): any; protected mkdir(dir: string): void; protected getFinalFileName(fileName: string): string; protected toHyphenCase(s: string): string; protected toCamelCase(s: string): string; protected getType(schemaObject: SchemaObject, namespace?: string): string; }