import { ActionListItemModel } from "@genexus/chameleon-controls-library";
import { ControlValidation } from "../../../common/form-validation";
import { FormSubmitResult } from "../../../common/types";
import { GXServerConnectionData } from "../connect-gx-server/connect-gx-server";
import { KBVersion } from "../version-control/common/types";
export declare class GxIdeCreateKbFromServer {
    #private;
    [key: string]: any;
    el: HTMLGxIdeCreateKbFromServerElement;
    /**
     * State to enable/disable the select versions button
     */
    enableSelectVersionsButton: boolean;
    /**
     * The current kbn name value.
     */
    localKbNameInputValue: string;
    /**
     * State to store the loading state of the component
     */
    loading: boolean;
    /**
     * State to store the filter input value to filter the list-box
     */
    filterValue: string;
    /**
     * KBs filtered
     */
    kbsFilteredActionListModel: ActionListItemModel[];
    validatableControls: Map<string, ControlValidation>;
    /**
     * The version selected type
     */
    versionSelectedType: VersionOption;
    /**
     * String value to show the number of versions selected ("N versions selected")
     */
    versionsValueInput: string;
    locationMode: string;
    /**
     * Default suggested path to a directory where the KB will be stored/generated.
     */
    kbLocation: string;
    /**
     * Specifies whether the location field (and its folder-picker button) is
     * shown in the header, allowing the user to override the default `kbLocation`
     * path. Independent from `isAdvanced`.
     */
    readonly canSetLocation: boolean;
    /**
     * Set of data required when executing any of the callbacks that require a connection to the server.
     */
    readonly connectionData: GXServerConnectionData;
    /**
     * Callback that is invoked when the dialog is closed
     */
    readonly cancelCallback: () => Promise<void>;
    /**
     * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal
     */
    readonly changeConnectionCallback: (data: GXServerConnectionData) => Promise<void>;
    /**
     * Callback that must be invoked when the 'Create KB' button is pressed. Receives the user's parameter selection to create the remote KB locally and ends the dialog.
     */
    readonly createKBCallback: (kbInfo: KnowledgeBaseInfo) => Promise<FormSubmitResult>;
    /**
     * Callback that must be invoked when invoking the dialog
     */
    readonly getGXserverKBsCallback: (data: GXServerConnectionData) => Promise<KBData[]>;
    /**
     * Callback that returns a folder path selected by the user.
     */
    readonly selectLocationCallback: SelectLocationCallback;
    /**
     *  Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.
     */
    readonly selectKBVersionsCallback: (selectedKB: string) => Promise<KBVersion[]>;
    componentDidLoad(): Promise<void>;
    componentWillLoad(): Promise<void>;
    /**
     * Suspends or reactivates the shortcuts
     */
    suspendShortcuts(suspendShortcuts: boolean): Promise<void>;
    render(): void;
}
export type KBData = {
    id: string;
    name: string;
};
export type ConnectionResultData = {
    formResult: FormSubmitResult;
    kbs: KBData[];
};
export type KnowledgeBaseInfo = {
    selectedKB: string;
    versionSelected: VersionOption;
    localKBName: string;
    kbLocation?: string;
    versionList: KBVersion[];
};
export type VersionOption = "Trunk" | "All" | "Select";
export type SelectLocationCallback = () => Promise<string>;
