import { ComboBoxModel } from "@genexus/chameleon-controls-library";
import { TopStateBarType } from "../../../components";
import { ModuleServerData, ModuleData, ModuleActionType, ModuleFilterType, ModuleVersionData } from "../types";
import { ContextMenuInfo } from "../../../common/types";
export declare class GxManageModuleReferences {
    #private;
    el: HTMLGxIdeManageModuleReferencesElement;
    actionInProgress: boolean;
    executeActionCallbackInProgress: boolean;
    filteredModules: ModuleData[];
    loadingServer: boolean;
    modulesAll: ModuleData[];
    modulesAllChanged(newModules: ModuleData[]): void;
    progressState: TopStateBarType;
    progressValue: number;
    reRenderCounter: number;
    selectedModuleAction: ActionInfo;
    selectedModuleId: string;
    selectedModuleType: ModuleFilterType;
    selectedServerId: string;
    selectedServerValue: string;
    serversComboBoxModel: ComboBoxModel;
    selectedModuleVersions: ComboBoxModel;
    /**
     * If true, the progress bar will close automatically once the progress has reached 100%.
     */
    readonly autoCloseProgressBar: boolean;
    /**
     * Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage.
     */
    readonly executeActionCallback: ExecuteActionCallback;
    /**
     * Callback invoked when an element is right clicked on servers list
     */
    readonly serverContextMenuCallback: ServerContextMenuCallback;
    /**
     * Callback invoked when a server is selected. Returns the set of modules available on that server.
     */
    readonly serverSelectedCallback: ServerSelectedCallback;
    /**
     * List of module servers currently cataloged
     */
    readonly servers: ModuleServerData[];
    serversChanged(newServers: ModuleServerData[]): void;
    /**
     * Allows you to hide the button (...) that executes serverContextMenuCallback
     */
    readonly showServerCommands: boolean;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): Promise<void>;
    componentDidRender(): void;
    progressBarClosedHandler(): void;
    render(): void;
}
export type ExecuteActionCallback = (serverId: string, moduleId: string, moduleVersionId: string, action: ModuleActionType, onProgress: (message: string, progress: number, state: TopStateBarType) => void) => Promise<boolean>;
export type ServerSelectedCallback = (id: string, reload: boolean) => Promise<ModuleData[]>;
export type ServerContextMenuCallback = (contextMenuInfo: ContextMenuInfo) => Promise<void>;
export interface ActionInfo {
    message: string;
    progress: number;
    state: TopStateBarType;
}
export type ModuleVersionsMap = Map<string, {
    value: string;
    caption: string;
}>;
export type ModulesMap = Map<string, ModuleMapValue>;
export type ModuleMapValue = {
    moduleData: ModuleData;
    currentInstalledVersion: string;
    currentSelectedVersion: string;
    comboBoxVersionsModel: ComboBoxModel;
};
export type ModulesVersionsMap = Map<string, ModuleVersionData>;
