import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, OnInit, QueryList, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
import { Subject } from 'rxjs';
import { PermissionDataConfig } from './parts/interfaces/permission-dataconfig.interface';
import { Permission } from './parts/models/permission.model';
import { PermissionGroupDirective } from './parts/directives/permission-group.directive';
import { FocusKeyManager } from '@angular/cdk/a11y';
import { ListOptionDirective } from '../misc/listoption.directive';
import { I18nService } from '../i18n/i18n.service';
export declare class TlPermissions implements OnInit, AfterContentInit, AfterViewInit, OnChanges {
    private changes;
    private i18n;
    data: Array<PermissionDataConfig>;
    permissions: string[];
    height: string;
    color: string;
    loading: boolean;
    keyGroup: string;
    keyPermissions: string;
    keyPermissionValue: string;
    keyPermissionDescription: string;
    searchGroup: string;
    searchFunctionality: string;
    allowColumnText: string;
    permissionGroup: QueryList<PermissionGroupDirective>;
    permissionList: QueryList<ListOptionDirective>;
    listGroup: ElementRef;
    listPermission: ElementRef;
    changePermission: EventEmitter<any>;
    keyManagerPermissionGroup: FocusKeyManager<PermissionGroupDirective>;
    keyManagerPermissionList: FocusKeyManager<ListOptionDirective>;
    dataSource: any[];
    filterGroup: Subject<any>;
    filterPermissions: Subject<any>;
    selectedGroup: any;
    selectedGroupIndex: number;
    selected: boolean;
    dataSourceSelected: any;
    loadingMessage: string;
    notFound: string;
    constructor(changes: ChangeDetectorRef, i18n: I18nService);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngAfterViewInit(): void;
    filterPermissionAllowed(dataSourceItem: any): string[];
    handleChangePermissions(): void;
    handleFilterGroup(): void;
    handleFilterPermissions(): void;
    handleCheckPermission(): void;
    emitChange(): void;
    setSelectedGroup(): any[];
    selectGroup(selectGroup: PermissionGroupDirective, index: number): void;
    deselectGroups(selectGroup: any): void;
    filterByGroup(term: any): void;
    filterByRule(term: any): void;
    setFirstPermissionSelected(): void;
    setFirstGroupSelected(): void;
    setUpDataSource(): void;
    setRightListFocus(): void;
    setLeftListFocus(): void;
    onCheckGroup(checked: boolean | string): void;
    handleKeyManager($event: KeyboardEvent, manager: FocusKeyManager<any>): void;
    detectChanges(): void;
    handleSelectPermission($event: Event, item: Permission): void;
    handleSpaceSelect($event: Event, item: PermissionDataConfig): void;
    stopEvent($event: Event): void;
    inputFilterGroup($event: any): void;
    inputFilterPermissions($event: any): void;
    ngOnChanges(changes: SimpleChanges): void;
}
