import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { IconService, ListItem } from 'carbon-components-angular';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { NamedUser, TeamResponseDto } from '@valtimo/shared';
import { UserProviderService } from '@valtimo/security';
import { CdsThemeService } from '../../services/cds-theme.service';
import { AssignmentChangeEvent, AssignmentMode } from '../../models/assignment.model';
import * as i0 from "@angular/core";
export declare class AssignmentComponent implements OnInit, OnChanges, OnDestroy {
    private readonly _cdsThemeService;
    private readonly _iconService;
    private readonly _translateService;
    private readonly _userProviderService;
    get hostDisplay(): string | null;
    mode: AssignmentMode;
    hasPermission: boolean;
    set assigneeId(value: string);
    set assigneeFullName(value: string);
    set assignedTeamKey(value: string);
    set assignedTeamTitle(value: string);
    candidateUsers$: Observable<NamedUser[]>;
    candidateTeams$: Observable<TeamResponseDto[]>;
    readonly assignmentChangedEvent: EventEmitter<AssignmentChangeEvent>;
    readonly unassignedEvent: EventEmitter<void>;
    _assigneeId: string | null;
    _assigneeFullName: string | null;
    _assignedTeamKey: string | null;
    _assignedTeamTitle: string | null;
    readonly disabled$: BehaviorSubject<boolean>;
    readonly editToggletipOpen$: BehaviorSubject<boolean>;
    readonly loading$: BehaviorSubject<boolean>;
    readonly mouseIsOver$: BehaviorSubject<boolean>;
    readonly open$: Subject<boolean>;
    readonly selectedTeamKey$: BehaviorSubject<string>;
    readonly selectedUserId$: BehaviorSubject<string>;
    readonly showTeamComboBox$: BehaviorSubject<boolean>;
    readonly showUserComboBox$: BehaviorSubject<boolean>;
    readonly teamItems$: BehaviorSubject<ListItem[]>;
    readonly toggletipDropdownTheme$: Observable<import("@valtimo/components").CurrentCarbonTheme>;
    readonly toggletipTheme$: Observable<import("@valtimo/components").CurrentCarbonTheme>;
    readonly userItems$: BehaviorSubject<ListItem[]>;
    private _currentUser;
    private _initialTeamKey;
    private _initialUserId;
    private _candidateTeamsSubscription;
    private _candidateUsersSubscription;
    private readonly _subscriptions;
    get assignButtonTranslationKey(): string;
    get hasEditChanges(): boolean;
    get isAssigned(): boolean;
    constructor(_cdsThemeService: CdsThemeService, _iconService: IconService, _translateService: TranslateService, _userProviderService: UserProviderService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    onConfirm(): void;
    onCloseEditToggletip(): void;
    onMouseEnter(): void;
    onMouseLeave(): void;
    onOpenAssignToggletip(): void;
    onOpenEditToggletip(): void;
    onTeamClear(): void;
    onTeamSelect(event: ListItem): void;
    onUnassign(): void;
    onUpdate(): void;
    onUserClear(): void;
    onUserSelect(event: ListItem): void;
    private closeToggletip;
    private disable;
    private enable;
    private isCurrentUser;
    private loadCandidates;
    private loadCandidatesForEdit;
    private mapTeamsForDropdown;
    private mapUsersForDropdown;
    private resetComboBoxes;
    private unsubscribeCandidates;
    static ɵfac: i0.ɵɵFactoryDeclaration<AssignmentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AssignmentComponent, "valtimo-assignment", never, { "mode": { "alias": "mode"; "required": false; }; "hasPermission": { "alias": "hasPermission"; "required": false; }; "assigneeId": { "alias": "assigneeId"; "required": false; }; "assigneeFullName": { "alias": "assigneeFullName"; "required": false; }; "assignedTeamKey": { "alias": "assignedTeamKey"; "required": false; }; "assignedTeamTitle": { "alias": "assignedTeamTitle"; "required": false; }; "candidateUsers$": { "alias": "candidateUsers$"; "required": false; }; "candidateTeams$": { "alias": "candidateTeams$"; "required": false; }; }, { "assignmentChangedEvent": "assignmentChangedEvent"; "unassignedEvent": "unassignedEvent"; }, never, never, true, never>;
}
//# sourceMappingURL=assignment.component.d.ts.map