import { EventEmitter, WritableSignal } from '@angular/core';
import { TccET_APPLI } from '../../../odata/models/applications.model';
declare enum desktopTypes {
    Inbox = "Inbox",
    Validation = "Validation",
    Office = "Office",
    MsOutlook = "MsOutlook",
    MsWord = "MsWord",
    MsExcel = "MsExcel",
    MsTeams = "MsTeams"
}
interface desktopData {
    desktopType: desktopTypes;
    desktopTypeName: string;
    desktopId: string;
}
export interface TccDesktopSelectionAPI {
    onChange: EventEmitter<void>;
    getTccCaptureApplicationDesktops: () => TccET_APPLI.TccCaptureApplicationDesktops;
}
export declare class TccDesktopSelectionComponent implements TccDesktopSelectionAPI {
    private readonly dialog;
    private readonly factory;
    /**
     * Id of the businessObject, that the desired desktops are connected to.
     */
    set businessObjectId(businessObjectId: string);
    /**
     * Init desktops object
     */
    set desktops(desktops: TccET_APPLI.TccCaptureApplicationDesktops);
    /**
     * onChange event, gets triggered from addDesktop and deleteDesktop
     */
    onChange: EventEmitter<void>;
    _desktopsList$: WritableSignal<desktopData[]>;
    readonly desktopNotFoundMessage: string;
    readonly desktopLoadingMessage: string;
    /**
     * Opens the dialog to add a new desktop to the desktops object or to edit a existing one.
     * @param editDesktopData data of the desktop, that is being changed
     */
    openAddDesktopDialog(editDesktopData?: desktopData): void;
    /**
     * Deletes the desktop specified in deleteDesktopData
     * @param deletedDesktopData data of the desktop, that is being deleted
     */
    deleteDesktop(deletedDesktopData: desktopData): void;
    constructor();
    /**
     * Names of the different Desktop Targets as translation strings
     */
    private readonly desktopTypeNames;
    /**
     * boService to create the nestedService to load the desktops
     */
    private BOService;
    /**
     * Selectable desktops, will be loaded async when the businessObject Id is provided.
     */
    private desktopsSelection;
    /**
     * internal data list, holding all selected desktops
     */
    private _desktopsListFull;
    /**
     * setter for desktopsList
     * fills the template model with the list to display and sets the complete list in the internal data list
     */
    private set desktopsList(value);
    /**
     * getter for internal data list
     */
    private get desktopsList();
    /**
     * Adds a desktop to the desktops object and emits change event
     * @param result openAddDesktopDialog result
     */
    private addDesktop;
    /**
     * Creates the desktop object using the currently shown list
     * @returns the desktops object
     */
    getTccCaptureApplicationDesktops(): TccET_APPLI.TccCaptureApplicationDesktops;
}
export {};
