import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
import { MatSelectionList } from '@angular/material/list';
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { UserListService } from '../../user/services/user-list.service';
import { ProcessList, ExtendedProcessRole, ProcessVersion, ProcessListItem } from './services/ProcessList';
import { FormControl } from '@angular/forms';
import { RoleAssignmentService } from './services/role-assignment.service';
import { UserService } from '../../user/services/user.service';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare abstract class AbstractRoleAssignmentComponent implements OnInit, AfterViewInit, OnDestroy {
    protected _service: RoleAssignmentService;
    protected _userService: UserService;
    userList: MatSelectionList;
    viewport: CdkVirtualScrollViewport;
    users: UserListService;
    nets: ProcessList;
    filteredProcesses: Array<ProcessListItem>;
    userMultiSelect: boolean;
    searchUserControl: FormControl<any>;
    searchNetControl: FormControl<any>;
    protected SEARCH_DEBOUNCE_TIME: number;
    protected subValueChanges: Subscription;
    protected subNetValueChanges: Subscription;
    protected subUsers: Subscription;
    constructor(_service: RoleAssignmentService, _userService: UserService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    loadNextUserPage(): void;
    autoSelectRoles(): void;
    update(role: ExtendedProcessRole): void;
    selectAllUsers(select: boolean): void;
    toggleAllRoles(net: ProcessVersion, select: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractRoleAssignmentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractRoleAssignmentComponent, "ncc-abstract-role", never, {}, {}, never, never, false, never>;
}
