import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { Observable, ReplaySubject } from 'rxjs';
import { UserListItem, UserListService } from '../../../../user/services/user-list.service';
import { UserValue } from '../../../../data-fields/user-field/models/user-value';
import { AbstractBaseUserAssignListComponent } from "../base-user-assign-list/abstract-base-user-assign-list.component";
import * as i0 from "@angular/core";
/**
 * Is responsible for displaying, filtering, loading and selecting users.
 */
export declare abstract class AbstractMultiUserAssignListComponent extends AbstractBaseUserAssignListComponent implements OnInit, OnDestroy {
    initiallySelectedUsers: Array<UserValue> | undefined;
    userSelected: EventEmitter<UserValue>;
    userUnselected: EventEmitter<UserValue>;
    users$: Observable<Array<UserListItem>>;
    protected _selectedUsers$: ReplaySubject<Array<string>>;
    protected _currentlySelectedUsers: Array<string>;
    constructor(_userListService: UserListService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    get selectedUsers$(): Observable<Array<string>>;
    get currentlySelectedUsers(): string[];
    select(selectedUser: UserListItem): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractMultiUserAssignListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractMultiUserAssignListComponent, "ncc-abstract-multi-user-assign-list", never, { "initiallySelectedUsers": { "alias": "initiallySelectedUsers"; "required": false; }; }, { "userSelected": "userSelected"; "userUnselected": "userUnselected"; }, never, never, false, never>;
}
