import { Directive, DocumentSectionInterface, NavigationItemInterface, NavigationSectionInterface, PluginImplementedInterface, PluginInterface, Schema, SchemaType, TypeRef } from '../interface';
/**
 * Plugin Base implementation
 */
export declare abstract class Plugin implements PluginInterface, PluginImplementedInterface {
    document: Schema;
    projectPackage: any;
    graphidocsPackage: any;
    static collect<T>(collection: T[][]): T[];
    static collectNavigations(plugins: PluginInterface[], buildForType?: string): Promise<NavigationSectionInterface[]>;
    static collectDocuments(plugins: PluginInterface[], buildForType?: string): Promise<DocumentSectionInterface[]>;
    static collectHeaders(plugins: PluginInterface[], buildForType?: string): Promise<string[]>;
    static collectAssets(plugins: PluginInterface[]): Promise<string[]>;
    queryType: SchemaType | null;
    mutationType: SchemaType | null;
    subscriptionType: SchemaType | null;
    typeMap: {
        [name: string]: SchemaType;
    };
    directiveMap: {
        [name: string]: Directive;
    };
    constructor(document: Schema, projectPackage: any, graphidocsPackage: any);
    getNavigations(_buildForType?: string): NavigationSection[] | Promise<NavigationSectionInterface[]>;
    url(type: TypeRef): string;
}
/**
 * NavigationSectionInterface short implementation
 */
export declare class NavigationSection implements NavigationSectionInterface {
    title: string;
    items: NavigationItem[];
    constructor(title: string, items?: NavigationItem[]);
}
/**
 * NavigationItemInterface short implementation
 */
export declare class NavigationItem implements NavigationItemInterface {
    text: string;
    href: string;
    isActive: boolean;
    constructor(text: string, href: string, isActive: boolean);
}
/**
 * DocumentSectionInterface short implementation
 */
export declare class DocumentSection implements DocumentSectionInterface {
    title: string;
    description: string;
    constructor(title: string, description: string);
}
export declare function sortTypes(a: SchemaType, b: SchemaType): number;
