import * as i0 from '@angular/core';
import { EventEmitter, ElementRef, Injector, OnInit, OnChanges } from '@angular/core';
import * as i1 from '@c8y/ngx-components';
import { UpgradeComponent } from '@angular/upgrade/static';
import * as rxjs from 'rxjs';
import { BehaviorSubject } from 'rxjs';
import { IIdentified } from '@c8y/client';
import { Ng1UserInventoryRolesService, Ng1RolesService } from '@c8y/ngx-components/upgrade/upgraded-services';

declare class InventoryRoleSelector extends UpgradeComponent {
    assignedRoles: any;
    inheritedRoles: any;
    inventoryRoles: any;
    ownerAllowedRoles: any;
    disableEditForExternalUsers: any;
    onApply: EventEmitter<any>;
    constructor(elementRef: ElementRef, injector: Injector);
    static ɵfac: i0.ɵɵFactoryDeclaration<InventoryRoleSelector, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InventoryRoleSelector, "c8y-inventory-role-selector-upgraded", never, { "assignedRoles": { "alias": "assignedRoles"; "required": false; }; "inheritedRoles": { "alias": "inheritedRoles"; "required": false; }; "inventoryRoles": { "alias": "inventoryRoles"; "required": false; }; "ownerAllowedRoles": { "alias": "ownerAllowedRoles"; "required": false; }; "disableEditForExternalUsers": { "alias": "disableEditForExternalUsers"; "required": false; }; }, { "onApply": "onApply"; }, never, never, true, never>;
}

declare class RolesAssetTreeComponent implements OnInit, OnChanges {
    c8yUserInventoryRoles: Ng1UserInventoryRolesService;
    c8yRoles: Ng1RolesService;
    user: any;
    searchFilter: any;
    assignedRoles: any;
    ownerAssignedRoles: any;
    expandGroups: any;
    pageSize: any;
    paginationOffset: any;
    disableEditForExternalUsers: boolean;
    onChangeRoles: EventEmitter<any>;
    onChangeItemCount: EventEmitter<any>;
    rootGroups: any;
    flatAssetTree: any;
    inventoryRoles: any;
    loadingAssetTree: any;
    inheritedRoles: any;
    ownerAllAssignedRoles: any;
    noSubgroupTitle: "No subgroups";
    manySubgroupsTitle: "Subgroups: {{ count }}";
    oneSubgroupTitle: "Subgroup: 1";
    clickToOpenTitle: "Click to fetch subgroups";
    expandAriaLabel: "Expand";
    collapseAriaLabel: "Collapse";
    searchTermSubject: BehaviorSubject<string>;
    flatTreeSubject: BehaviorSubject<IIdentified[]>;
    flatAssetTree$: rxjs.Observable<IIdentified[]>;
    constructor(c8yUserInventoryRoles: Ng1UserInventoryRolesService, c8yRoles: Ng1RolesService);
    ngOnInit(): void;
    loadAssetTree(): Promise<void>;
    updateTree(): void;
    loadChildren(mo: any): void;
    loadInventoryRoles(): void;
    ngOnChanges(changes: any): void;
    setInheritedRoles(): void;
    getInventoryInheritedRoles(flatTree: any, assignedRoles: any): any;
    onApply(ev: any, managedObjectId: any): void;
    filterAsset(asset: any): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<RolesAssetTreeComponent, [{ optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RolesAssetTreeComponent, "c8y-roles-asset-tree-upgraded", never, { "user": { "alias": "user"; "required": false; }; "searchFilter": { "alias": "searchFilter"; "required": false; }; "assignedRoles": { "alias": "assignedRoles"; "required": false; }; "ownerAssignedRoles": { "alias": "ownerAssignedRoles"; "required": false; }; "expandGroups": { "alias": "expandGroups"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "paginationOffset": { "alias": "paginationOffset"; "required": false; }; "disableEditForExternalUsers": { "alias": "disableEditForExternalUsers"; "required": false; }; }, { "onChangeRoles": "onChangeRoles"; "onChangeItemCount": "onChangeItemCount"; }, never, never, true, never>;
}

declare class UserRolesModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<UserRolesModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<UserRolesModule, never, [typeof i1.CoreModule, typeof InventoryRoleSelector, typeof RolesAssetTreeComponent], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<UserRolesModule>;
}

export { InventoryRoleSelector, RolesAssetTreeComponent, UserRolesModule };
//# sourceMappingURL=index.d.ts.map
