///
import { Options } from '../interface/config';
import { Ci } from '../base';
import { SchemaParser } from './paser';
import { Swagger2_Docs, Swagger2_Groups_Item } from 'src/interface/swagger2/doc';
import { API } from 'src/interface/common';
export default class Swagger2 extends Ci {
options: Options;
outputDir: string;
private getSchema;
/**
* 获取swaggerDoc的json数据
* @param url 默认: options.docUrl + options.path
* @returns
*/
openUrl(url?: string): Promise;
/**
* 获取服务分组列表
* http://domain.com/swagger-resources
* ?group=tl-smo-service
*/
fetchServerGroups(): Promise;
/**
* 转化ast
* @param docs api文档返回的json
*/
ast(docs?: Swagger2_Docs): SchemaParser | undefined;
/** 写入interface */
createTypes(types: Record): Promise;
/** 写入service */
createAPIService(apis: API[]): Promise;
endOfLine(): string;
toUpCase(name: string): string;
/** 写入api-url */
createAPIUrlConf(apis: API[]): void;
/**
* 占位符替换
*/
replaceKeyword(keyword: string, content: string): string;
/**
* 文件替换内容
* @param basePath
* @param fileName
* @param origin
* @param data
* @param anchor
* @returns
*/
replaceFileContent(basePath: string, fileName: string, origin: string, data: string, anchor: string): Promise;
/**
* 创建文件并写入
* @param basePath
* @param fileName
* @param data
* @param overwrite
* @returns
*/
writeFile(basePath: string, fileName: string, data: Buffer | string, overwrite?: boolean): Promise;
/** 写入api */
createApi(apis: any): void;
/** 过滤多余api */
filterRuleDocs(doc: Swagger2_Docs): Swagger2_Docs | undefined;
/**
* 单次执行
*/
singleThread(group?: Swagger2_Groups_Item): Promise;
/** 合并对象 */
combineTypes(origin: any, aim: any): any;
run(): Promise;
}