import { OpenAPIV2 } from 'openapi-types';
import { DirEntry, FileEntry } from '../util/FileUtil';
import { GeneratorContext, TemplateGenerator } from './TemplateGenerator';
export interface API {
    [name: string]: string | API;
}
interface Import {
    dir: string;
    files: FileEntry[];
}
interface Context extends GeneratorContext {
    API: string;
    description?: string;
    imports: Import[];
}
export declare class APIClientGenerator extends TemplateGenerator {
    private readonly fileIndex;
    private readonly outputDirectory;
    protected readonly description?: string;
    protected readonly name: string;
    protected readonly templateFile: string;
    constructor(fileIndex: DirEntry, outputDirectory: string, spec: OpenAPIV2.Document);
    generateAPI(fileIndex: DirEntry): Promise<API>;
    private generateImports;
    private bundleImports;
    write(): Promise<void>;
    protected getContext(): Promise<Context>;
}
export {};
