import { OpenAPIObject, PathsObject } from './openapi-typings';
import { Globals } from './globals';
import { HandlebarsManager } from './handlebars-manager';
import { Logger } from './logger';
import { Model } from './model';
import { Operation } from './operation';
import { Options } from './options';
import { Service } from './service';
import { Templates } from './templates';
/**
 * Main generator class
 */
export declare class NgOpenApiGen {
    openApi: OpenAPIObject;
    options: Options;
    globals: Globals;
    handlebarsManager: HandlebarsManager;
    templates: Templates;
    models: Map<string, Model>;
    services: Map<string, Service>;
    operations: Map<string, Operation>;
    outDir: string;
    logger: Logger;
    tempDir: string;
    constructor(openApi: OpenAPIObject, options: Options);
    /**
     * Set the temp dir to a system temporary directory if option useTempDir is set
     */
    initTempDir(): void;
    /**
     * Actually generates the files
     */
    generate(): void;
    private write;
    private initHandlebars;
    private readTemplates;
    private readRootUrl;
    private readModels;
    private readServices;
    private ignoreUnusedModels;
    private collectDependencies;
    private allReferencedNames;
    private validateOpenApiVersion;
    private setEndOfLine;
    private setDefaults;
}
/**
 * Parses the command-line arguments, reads the configuration file and run the generation
 */
export declare function runNgOpenApiGen(): Promise<void>;
export declare function filterPaths(paths: PathsObject, excludeTags?: Options['excludeTags'], excludePaths?: Options['excludePaths'], includeTags?: Options['includeTags']): PathsObject;
