import { EventEmitter } from "../../../stencil-public-runtime";
import { ObjectData } from "./helpers";
export declare class GxIdeBpmExportXpdl {
    /**
     * The component hard-coded strings translations.
     */
    private _componentLocale;
    private renderedFirstTime;
    private includeAll;
    el: HTMLGxIdeBpmObjectsSelectorElement;
    private includeAllCheckboxEl;
    objects: ObjectData[];
    /**
     * Contains the list of selected object ids
     */
    selectedObjects: string[];
    /**
     * If true it displays the component title on the header
     */
    readonly displayTitle = false;
    /**
     *The current selection in the list of objects
     */
    selection: SelectionData;
    /**
     * Callback invoked when the user presses the 'Add' button.
     * 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.
     * 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<HTMLGxIdeBpmObjectsSelectorElement>;
    /**
     * @description Gets fired when the objects selection list change or when 'Select All' checkbox state changes.
     */
    selectionChanged: EventEmitter<string>;
    componentWillLoad(): Promise<void>;
    componentDidRender(): void;
    private objectSelectionChangedHandler;
    private removeObjectsHandler;
    private removeAllObjectsHandler;
    private includeAllHandler;
    private addCallbackHandler;
    private referencesCallbackHandler;
    private updateSelection;
    render(): any;
}
export type SelectionData = {
    includeAll: boolean;
    objectIds: string[];
};
