import { FormSubmitResult } from "../../components";
import { ControlValidation } from "../../common/form-validation";
export declare class GxIdeNewVersion {
    #private;
    el: HTMLGxIdeNewVersionElement;
    /**
     * The version selected name
     */
    versionName: string;
    /**
     * The version selected description
     */
    versionDescription: string;
    /**
     * Indicates if the version description has been edited
     */
    versionDescriptionEdited: boolean;
    /**
     * Checkbox value to set the new version as active
     */
    setNewVersionAsActive: boolean;
    /**
     * Checkbox value to create new remote version linked to the local version
     */
    createLinkedLocalVersion: boolean;
    /**
     * Checkbox value to create new remote version as protected version
     */
    createAsProtectedVersion: boolean;
    validatableControls: Map<string, ControlValidation>;
    /**
     * Indicates if the component is going to be used to create a new remote version
     */
    readonly isRemoteOperation: boolean;
    /**
     * Indicates if the component is going to be used to create a new remote frozen version
     */
    readonly isFreezeOperation: boolean;
    /**
     * Indicates if the component must show the checkbox to create a linked local version
     */
    readonly showLinkedLocalVersionCheckbox: boolean;
    /**
     * Callback that must be invoked when the 'Cancel' button is pressed.
     */
    readonly cancelCallback: () => Promise<void>;
    /**
     * Callback that must be invoked when the 'Create' button is pressed.
     */
    readonly createCallback: (newVersionData: NewVersionData) => Promise<FormSubmitResult>;
    /**
     * This property is used to set the initial values of the input fields when the component is loaded.
     */
    readonly defaultInputValues: NewVersionData;
    defaultInputValuesChanged(newDefaultInputValues: NewVersionData): void;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): void;
    render(): any;
}
export type NewVersionData = {
    versionName: string;
    versionDescription: string;
    setNewVersionAsActive?: boolean;
    createLocalLinkedVersion?: boolean;
    createProtectedVersion?: boolean;
};
