import { EventEmitter } from "../../../stencil-public-runtime";
import { ObjectData } from "../objects-selector/helpers";
export declare class GxIdeBpmExportXpdl {
    /**
     * The component hard-coded strings translations.
     */
    private _componentLocale;
    private renderedFirstTime;
    el: HTMLGxIdeBpmExportXpdlElement;
    private exportInputEl;
    private bpmObjectSelectorEl;
    emptyInput: boolean;
    emptyObjects: boolean;
    notExporting: boolean;
    /**
     * If true it displays the component title on the header
     */
    readonly displayTitle = false;
    /**
     * Callback function invoked when the user presses the 'Create' button.
     * This function is expected to handle the export process based on the provided export data.
     *
     * @param {ExportData} exportData - The data required for the export process.
     * @returns {Promise<boolean>} A promise that resolves to a boolean indicating the success of the export operation.
     * Returns `true` if the export was successful, and `false` otherwise.
     */
    readonly exportCallback: ExportCallback;
    /**
     * Callback invoked when user press 'Cancel' button
     */
    readonly cancelCallback: CancelCallback;
    /**
     * Callback invoked when the user presses the 'Add' button. associated with gx-ide-bpm-objects-selector
     * This function is expected to return a list of selected objects' basic information.
     * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.
     */
    readonly addCallback: () => Promise<ObjectData[]>;
    /**
     * Callback invoked when the user presses the 'References' button. associated with gx-ide-bpm-objects-selector
     * Receives a parameter which is an array of IDs of the objects currently added to the list.
     * Returns a Promise that resolves to an array of ObjectData, where each ObjectData contains the ID, icon, and name of an object.
     * @param {string[]} ids - An array of IDs of the objects currently added to the list.
     * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.
     */
    readonly referencesCallback: (ids: string[]) => Promise<ObjectData[]>;
    /**
     * @description Gets fired when the component has rendered for the first time.
     */
    componentDidRenderFirstTime: EventEmitter<string>;
    componentWillLoad(): Promise<void>;
    componentDidRender(): void;
    private exportHandler;
    private inputHandle;
    private handleSelectionChanged;
    render(): any;
}
export type ExportCallback = (exportData: ExportData) => Promise<boolean>;
export type CancelCallback = () => Promise<void>;
export type ExportData = {
    directoryName: string;
    Objects: SelectionData;
};
export type SelectionData = {
    includeAll: boolean;
    objectIds: string[];
};
