import { NestedTreeControl } from '@angular/cdk/tree';
import { OnDestroy, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { MatCheckboxChange, MatTreeNestedDataSource } from '@angular/material';
import { Element, ElementsService, CurrentService, IDept } from 'dbweb-core';
import { BillComponent } from '../bill/bill.component';
import { RoleEle, RoleBack, RoleValidElement } from './back';
import { TreeNode } from './tree-node';
declare class ValidElement extends Element {
    Dept: String;
    constructor(data: RoleValidElement);
}
export declare class RoleComponent implements OnInit, OnDestroy {
    eles: ElementsService;
    private back;
    current: CurrentService;
    readonly menuSelectAll = "all";
    readonly menuSelectChecked = "checked";
    readonly menuSelectNotChecked = "not-checked";
    hostClass: boolean;
    bill: BillComponent;
    ctrlElementName: FormControl;
    ctrlMenuRange: FormControl;
    filterElements: ValidElement[];
    private subs;
    rootNode: TreeNode;
    treeControl: NestedTreeControl<TreeNode>;
    dataSource: MatTreeNestedDataSource<TreeNode>;
    validElements: ValidElement[];
    ctrlDeptSelect: FormControl;
    hasRoleDepts: IDept[];
    constructor(eles: ElementsService, back: RoleBack, current: CurrentService);
    ngOnDestroy(): void;
    refreshFilterElements(): void;
    ngOnInit(): void;
    readonly roles: RoleEle[];
    hasChild: (_: number, node: TreeNode) => boolean;
    treeNodeChecked(node: TreeNode): boolean;
    changeNodeChecked(node: TreeNode, event: MatCheckboxChange): void;
    dropEle(ele: RoleEle): void;
}
export {};
