import { EventEmitter } from "../../../stencil-public-runtime";
import { ActionListItemModel } from "@genexus/chameleon-controls-library/dist/types/components/action-list/types";
import { ComboBoxItemModel } from "@genexus/chameleon-controls-library/dist/types/components/combo-box/types";
export declare class GxIdeBpmTaskDocuments {
    #private;
    el: HTMLGxIdeBpmTaskDocumentsElement;
    /**
     * Documents state for the action list
     */
    documentsActionListState: ActionListItemModel[];
    documentName: string;
    /**
     * Document selected in the action list
     */
    selectedDocument: TaskDocumentData;
    /**
     * Possible suggestions for the documents
     */
    suggestedDocuments: ComboBoxItemModel[];
    /**
     * @property documents
     * @description The current value of the documents for the task
     */
    documents: TaskDocumentData[];
    /**
     * @property cancelCallback
     * @description Callback invoked when the user cancels the application declaration (Cancel button)
     */
    readonly cancelCallback: CancelCallback;
    /**
     * @property confirmCallback
     * @description Callback invoked when the user confirms the application declaration (Ok button)
     */
    readonly confirmCallback: ConfirmCallback;
    /**
     * @property selectDocumentCallback
     * @description Callback invoked when the user presses the '...' button to access the WorkflowDocuments selection dialog. Returns the name of the document to be inserted in the input or 'undefined' if it was canceled.
     */
    readonly selectDocumentCallback: SelectDocumentCallback;
    /**
     * @property suggestDocumentsCallback
     * @description Callback that must be called to obtain options for the document input.
     */
    readonly suggestDocumentsCallback: SuggestDocumentsCallback;
    /**
     * @description Gets fired when the component has rendered for the first time.
     */
    componentDidRenderFirstTime: EventEmitter<string>;
    componentWillLoad(): Promise<void>;
    componentDidRender(): void;
    /**
     * Suspends or reactivates the shortcuts
     */
    suspendShortcuts(suspendShortcuts: boolean): Promise<void>;
    render(): any;
}
export type TaskDocumentData = {
    name: string;
    readEnabled: boolean;
    readRequired: boolean;
    newEnabled: boolean;
    newRequired: boolean;
    updateEnabled: boolean;
    updateRequired: boolean;
    deleteEnabled: boolean;
    deleteRequired: boolean;
};
export type SuggestDocumentsCallback = (documentName: string) => Promise<string[] | undefined>;
export type SelectDocumentCallback = () => Promise<string | undefined>;
export type ConfirmCallback = (data: TaskDocumentData[]) => Promise<void>;
export type CancelCallback = () => Promise<void>;
