import { BooleanFlag, Command, InputInterface, ListValueFlag, NoParams, OutputInterface, ValueFlag } from '@2fd/command';
import { PluginInterface, Schema } from './interface';
import Template from './Template';
export interface IParams {
}
export interface IFlags {
    configFile: string;
    endpoint: string;
    headers: string[];
    queries: string[];
    schemaFile: string;
    plugins: string[];
    template: string;
    templateInstance?: Template;
    data: any;
    output: string;
    force: boolean;
    verbose: boolean;
    version: boolean;
}
export interface IPartials {
    [name: string]: string;
    index: string;
}
export interface IProjectPackage {
    graphidocs: IFlags;
}
export declare type Input = InputInterface<IFlags, IParams>;
export declare class GraphQLDocumentor extends Command<IFlags, IParams> {
    description: string;
    params: NoParams;
    flags: (ListValueFlag<{}> | ValueFlag<any> | BooleanFlag<{}>)[];
    action(input: Input, out: OutputInterface): Promise<void>;
    ensureOutputDirectory(dir: string, force: boolean): Promise<any>;
    getProjectPackage(input: Input): Promise<any>;
    getPluginInstances(paths: string[], schema: Schema, projectPackageJSON: object, packageJSON: object): PluginInterface[];
    getSchema(projectPackage: IProjectPackage): Promise<Schema>;
    renderTemplate(projectPackageJSON: IProjectPackage, plugins: PluginInterface[], schema: Schema): Promise<void[]>;
}
