import { Importable } from './importable';
import { Import } from './imports';
import { ReferenceObject, SchemaObject } from './openapi-typings';
import { Options } from './options';
/**
 * Base definitions of a generated type
 */
export declare abstract class GenType {
    name: string;
    options: Options;
    /** Name of the generated type / class */
    typeName: string;
    /** Namespace, separated by '/' */
    namespace?: string;
    /** Camel-case qualified name of the type, including namespace */
    qualifiedName: string;
    /** Name of the generated file */
    fileName: string;
    /** TypeScript comments for this type */
    tsComments: string;
    pathToRoot: string;
    imports: Import[];
    private _imports;
    additionalDependencies: string[];
    private _additionalDependencies;
    constructor(name: string, typeNameTransform: (typeName: string, options: Options) => string, options: Options);
    protected addImport(param: string | Importable | null | undefined, typeOnly?: boolean): void;
    protected abstract skipImport(name: string | Importable): boolean;
    protected abstract initPathToRoot(): string;
    protected updateImports(): void;
    protected collectImports(schema: SchemaObject | ReferenceObject | undefined, additional?: boolean, processOneOf?: boolean): void;
}
