import { IManagedObject, IIdentified } from '@c8y/client';
import * as i0 from '@angular/core';

declare abstract class Ng1RolesService {
    abstract list(filters: object): Promise<IManagedObject>;
}
declare function RolesServiceFactory(injector: any): any;
declare const rolesServiceProvider: {
    provide: typeof Ng1RolesService;
    useFactory: typeof RolesServiceFactory;
    deps: string[];
};

/**
 * This module is used for providing upgraded services from AngularJS to Angular. Separate module is created
 * to prevent circular dependency errors in more complex situations, where downgraded NgX component injects
 * NgJS upgraded services.
 */
declare class UpgradedServicesModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<UpgradedServicesModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<UpgradedServicesModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<UpgradedServicesModule>;
}

declare abstract class Ng1UserInventoryRolesService {
    abstract listRootGroups({ onlyRootsUser }: {
        onlyRootsUser: any;
    }): Promise<IIdentified[]>;
    abstract flatTree(tree: any, depth?: any, list?: any): IIdentified[];
    abstract loadChildren(mo: IManagedObject): Promise<IManagedObject[]>;
    abstract expandAll(mos: IManagedObject[], callback: () => void): any;
}
declare function UserInventoryRolesFactory(injector: any): any;
declare const userInventoryRolesServiceProvider: {
    provide: typeof Ng1UserInventoryRolesService;
    useFactory: typeof UserInventoryRolesFactory;
    deps: string[];
};

declare abstract class Ng1TenantPoliciesService {
    abstract list(): any;
    abstract doesEnforceStrongPassword(policyOrId: any): Promise<boolean>;
}
declare function TenantPoliciesFactory(injector: any): any;
declare const tenantPoliciesServiceProvider: {
    provide: typeof Ng1TenantPoliciesService;
    useFactory: typeof TenantPoliciesFactory;
    deps: string[];
};

declare abstract class Ng1SmartRulesService {
    abstract permissionsCfgs: any;
    abstract addNewForOutputOperationWithUI(operation: any): any;
    abstract addNewForInputAlarmAndOutputUserWithUI(alarm: any, user: any): any;
}
declare function SmartRulesServiceFactory(injector: any): any;
declare const smartRulesServiceProvider: {
    provide: typeof Ng1SmartRulesService;
    useFactory: typeof SmartRulesServiceFactory;
    deps: string[];
};

export { Ng1RolesService, Ng1SmartRulesService, Ng1TenantPoliciesService, Ng1UserInventoryRolesService, RolesServiceFactory, SmartRulesServiceFactory, TenantPoliciesFactory, UpgradedServicesModule, UserInventoryRolesFactory, rolesServiceProvider, smartRulesServiceProvider, tenantPoliciesServiceProvider, userInventoryRolesServiceProvider };
//# sourceMappingURL=index.d.ts.map
