import { FormSubmitResult, GxOption } from "../../common/types";
import { ControlValidation } from "../../common/form-validation";
import { ComboBoxModel } from "@genexus/chameleon-controls-library";
export declare class GxIdeNewKb {
    #private;
    el: HTMLGxIdeNewKbElement;
    advancedTabIsVisible: boolean;
    locationMode: string;
    /**
     * Allows selecting multiple generators for the front end
     * TODO: Check if this property can be deleted, since we can call getFrontEndsCallback.
     */
    frontEnds: GxOption[];
    validatableControls: Map<string, ControlValidation>;
    createDataInKbDisabled: boolean;
    userNameVisible: boolean;
    passwordVisible: boolean;
    savePasswordVisible: boolean;
    authenticationTypesComboBoxModel: ComboBoxModel;
    authenticationTypesInitialValue: string;
    collationsComboBoxModel: ComboBoxModel;
    collationsInitialValue: string;
    defaultDataSourcesComboBoxModel: ComboBoxModel;
    prototypingTargetsComboBoxModel: ComboBoxModel;
    prototypingTargetsInitialValue: string;
    prototypingEnvironmentsComboBoxModel: ComboBoxModel;
    prototypingEnvironmentsInitialValue: string;
    serverNamesComboBoxModel: ComboBoxModel;
    serverNamesInitialValue: string;
    userInterfaceLanguagesComboBoxModel: ComboBoxModel;
    userInterfaceLanguagesInitialValue: string;
    /**
     * Defines the type of authentication for the connection to the previously defined database
     */
    readonly authenticationTypes: GxOption[];
    watchAuthenticationTypes(newValue: GxOption[]): void;
    /**
     * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)
     */
    readonly cancelCallback: CancelCallback;
    /**
     * 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;
    /**
     * DB Collations
     */
    readonly collations: GxOption[];
    watchCollations(newValue: GxOption[]): void;
    /**
     * Callback that will be invoked when the user confirms KB creation (‘Create’ button)
     */
    readonly createCallback: CreateCallback;
    /**
     * Disabled if the first item of the 'Server Name' combo is selected
     */
    readonly createDataFilesInKBFolder: boolean;
    /**
     * Name of the database where we are going to persist the information of our KB
     */
    readonly databaseName: string;
    /**
     * It allows defining the DBMS that will be used in the solution
     */
    defaultDataSources: GxOption[];
    watchDefaultDataSources(newValue: GxOption[]): void;
    /**
     * Callback invoked when the user wants to cancel KB creation (‘Cancel’ button)
     */
    readonly getDataSourcesCallback: GetDataSourcesCallback;
    /**
     * Callback invoked when the user changes the prototyping environment, allowing for the modification of the list of front ends
     */
    readonly getFrontEndsCallback: GetFrontEndsCallback;
    /**
     * Callback invoked when the user changes the prototyping target id, allowing for the modification of the list of prototyping environments
     */
    readonly getPrototypingEnvironmentsCallback: GetPrototypingEnvironmentsCallback;
    /**
     * Specify whether it is feasible to display information related to local configuration parameters
     */
    readonly isAdvanced = false;
    /**
     * Default suggested path to a directory where the information related to the KB will be stored/generated
     */
    kbLocation: string;
    /**
     * The knowledge base default suggested name
     */
    readonly kbName: string;
    /**
     * Password for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)
     */
    readonly password: string;
    /**
     * It allows selecting the default environment that the KB will have (additional environments can be created later)
     */
    defaultPrototypingEnvironments: GxOption[];
    watchDefaultPrototypingEnvironments(newValue: GxOption[]): void;
    /**
     * Path to a directory where the information related to the KB will be stored/generated
     */
    readonly prototypingTargets: GxOption[];
    watchPrototypingTargets(newValue: GxOption[]): void;
    /**
     * Visible if something other than Windows Authentication is selected
     */
    readonly savePassword: boolean;
    /**
     * This is a function provided by the developer that returns a string, with the location path
     */
    readonly selectLocationCallback: SelectLocationCallback;
    /**
     * Name of the DB server where we want to persist the information of our KB
     */
    readonly serverNames: GxOption[];
    watchServerNames(newValue: GxOption[]): void;
    /**
     * Specify the language in which the application screens will be developed (default language)
     */
    readonly userInterfaceLanguages: GxOption[];
    watchUserInterfaceLanguages(newValue: GxOption[]): void;
    /**
     * Username for the database connection. Visible if the Authentication Type is different from Windows Authentication (first item of the combo)
     */
    readonly userName: string;
    componentWillLoad(): Promise<void>;
    connectedCallback(): void;
    componentDidLoad(): void;
    componentDidRender(): void;
    /**
     * Suspends or reactivates the shortcuts
     */
    suspendShortcuts(suspendShortcuts: boolean): Promise<void>;
    render(): any;
}
export interface NewKBData {
    authenticationType: string;
    collation: string;
    createDataFilesInKBFolder: boolean;
    databaseName: string;
    dataSource: string;
    frontEnds: string[];
    kbLocation: string;
    kbName: string;
    password: string;
    prototypingEnvironment: string;
    prototypingTarget: string;
    savePassword: boolean;
    serverName: string;
    userInterfaceLanguage: string;
    userName: string;
}
export type CreateCallback = (data: NewKBData) => Promise<FormSubmitResult>;
export type CancelCallback = () => Promise<void>;
export type GetDataSourcesCallback = (selectedPrototypingEnvironmentId: string, selectedPrototypingTargetId: string) => Promise<GxOption[]>;
export type GetFrontEndsCallback = (selectedPrototypingEnvironmentId: string) => Promise<GxOption[]>;
export type GetPrototypingEnvironmentsCallback = (selectedPrototypingTargetId: string) => Promise<GxOption[]>;
export type SelectLocationCallback = () => Promise<string>;
