import { FormSubmitResult } from "../../common/types";
import { ControlValidation } from "../../common/form-validation";
export declare class GxIdeCurlInspector {
    #private;
    el: HTMLGxIdeCurlInspectorElement;
    showTooltipError: boolean;
    isFormValid: boolean;
    curlContent: string;
    validatableControls: Map<string, ControlValidation>;
    /**
     * Callback that must be invoked when the user wants to cancel the operation
     */
    readonly cancelCallback: () => Promise<void>;
    /**
     * Callback that must be invoked when the user confirms the creation. Receives the data
     * necessary to create the procedure.
     */
    readonly confirmCallback: (data: CurlImportData) => Promise<FormSubmitResult>;
    /**
     * Default value for Module/Folder field
     */
    readonly defaultParent: EntityData;
    /**
     * Actual value for Module/Folder field
     */
    readonly parent: EntityData;
    /**
     * Callback invoked when the action is executed in the Module/Folder filter. It returns the
     * information of the selected object (id and name) or 'undefined' if it was canceled.
     */
    readonly selectModuleCallback: SelectModuleCallback;
    /**
     * Callback to validate the name. Should return true if the name is valid, false otherwise.
     */
    readonly validateNameCallback?: (name: string) => boolean;
    componentWillLoad(): Promise<void>;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    /**
     * Suspends or reactivates the shortcuts
     */
    suspendShortcuts(suspendShortcuts: boolean): Promise<void>;
    render(): void;
}
export type CurlImportData = {
    name: string;
    description: string;
    parentId: string;
    curl: string;
};
export type EntityData = {
    id: string;
    name: string;
    iconSrc?: string;
};
export type SelectModuleCallback = () => Promise<EntityData | undefined>;
