import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
import { MatSelectionList } from '@angular/material/list';
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { ProcessList, ExtendedProcessRole, ProcessVersion, ProcessListItem } from '../role-assignment/services/ProcessList';
import { FormControl } from '@angular/forms';
import { Subscription } from 'rxjs';
import { RoleAssignmentLdapGroupService } from './services/role-assignment-ldap-group.service';
import { LdapGroupListService } from '../../groups/services/ldap-group-list.service';
import * as i0 from "@angular/core";
export declare abstract class AbstractLdapGroupRoleAssignmentComponent implements OnInit, AfterViewInit, OnDestroy {
    protected _service: RoleAssignmentLdapGroupService;
    ldapGroupList: MatSelectionList;
    viewport: CdkVirtualScrollViewport;
    ldapGroup: LdapGroupListService;
    nets: ProcessList;
    filteredProcesses: Array<ProcessListItem>;
    ldapGroupMultiSelect: boolean;
    searchLdapGroupControl: FormControl<any>;
    searchNetControl: FormControl<any>;
    protected SEARCH_DEBOUNCE_TIME: number;
    protected subValueChanges: Subscription;
    protected subNetValueChanges: Subscription;
    protected subLdapGroup: Subscription;
    constructor(_service: RoleAssignmentLdapGroupService);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    loadNextLdapGroupPage(): void;
    autoSelectRoles(): void;
    update(role: ExtendedProcessRole): void;
    selectAllLdapGroup(select: boolean): void;
    toggleAllRoles(net: ProcessVersion, select: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractLdapGroupRoleAssignmentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractLdapGroupRoleAssignmentComponent, "ncc-abstract-ldap-group-role-assignment", never, {}, {}, never, never, false, never>;
}
