import * as gt from '../compiler/types';
import { Store } from './store';
import * as trig from '../sc2mod/trigger';
import * as cat from '../sc2mod/datacatalog';
import { SC2Workspace } from '../sc2mod/archive';
import { DataCatalogConfig, MetadataConfig } from './server';
export declare class S2WorkspaceMetadata {
    protected workspace: SC2Workspace;
    protected metadataCfg: MetadataConfig;
    protected dataCatalogConfig: DataCatalogConfig;
    protected symbolMap: Map<string, trig.Element>;
    protected presetValueParentMap: Map<string, trig.Preset>;
    getElementSymbolName(el: trig.Element): string;
    private mapContainer;
    build(): Promise<void>;
    constructor(workspace: SC2Workspace, metadataCfg: MetadataConfig, dataCatalogConfig: DataCatalogConfig);
    findElementByName(name: string): trig.Element;
    findPresetDef(presetValue: trig.PresetValue): trig.Preset;
    getNameOfPresetValue(preset: trig.Preset, presetValue: trig.PresetValue): string;
    getConstantNamesOfPreset(preset: trig.Preset): string[];
    getParameterTypeDoc(el: trig.ParameterType): {
        typeName: string;
        type: string;
    };
    getParamDoc(el: trig.ParamDef): {
        name: string;
        type: string;
    };
    getElementDoc(el: trig.Element, extended: boolean): string;
    getSymbolDoc(symbolName: string, extended?: boolean): string;
    getFunctionArgumentsDoc(symbolName: string): string[];
    getElementTypeOfNode(node: gt.Node): trig.ParameterType;
    getGameLinkItem(gameType: string, id?: string): Set<cat.CatalogDeclaration>;
    getGameLinkDetails(entity: cat.CatalogDeclaration): import("../sc2mod/archive").S2QualifiedFile;
    getGameLinkLocalizedName(gameType: string, gameLink: string, includePrefix?: boolean): string;
}
export declare function getDocumentationOfSymbol(store: Store, symbol: gt.Symbol, extended?: boolean): string;
