import { Injector } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Observable, Subject } from 'rxjs';
import { OComponentPermissionsByRoute } from '../../types/o-component-permissions-by-route.type';
import { OComponentPermissions } from '../../types/o-component-permissions.type';
import { OFormPermissions } from '../../types/o-form-permissions.type';
import { OGridPermissions } from '../../types/o-grid-permissions.type';
import { OListPermissions } from '../../types/o-list-permissions.type';
import { OPermissionsDefinition } from '../../types/o-permissions-definition.type';
import { OPermissions } from '../../types/o-permissions.type';
import { OTableMenuPermissions } from '../../types/table/o-table-menu-permissions.type';
import { OTablePermissions } from '../../types/table/o-table-permissions.type';
import { OTreePermissions } from '../../types/o-tree-permissions.type';
import * as i0 from "@angular/core";
export declare class PermissionsService {
    protected injector: Injector;
    onChangePermissions: Subject<any>;
    protected permissionsService: any;
    protected ontimizePermissionsConfig: any;
    protected permissions: OPermissionsDefinition;
    constructor(injector: Injector);
    protected configureService(): void;
    restart(): void;
    hasPermissions(): boolean;
    getUserPermissionsAsPromise(): Promise<boolean>;
    queryPermissions(): Observable<any>;
    protected getPermissionIdFromActRoute(actRoute: ActivatedRoute): string;
    protected getComponentPermissionsUsingRoute(attr: string, actRoute: ActivatedRoute): OComponentPermissions;
    getOComponentPermissions(attr: string, actRoute: ActivatedRoute, selector: string): OComponentPermissionsByRoute;
    getTablePermissions(attr: string, actRoute: ActivatedRoute): OTablePermissions;
    private getServiceBasePermissions;
    getFormPermissions(attr: string, actRoute: ActivatedRoute): OFormPermissions;
    getListPermissions(attr: string, actRoute: ActivatedRoute): OListPermissions;
    getGridPermissions(attr: string, actRoute: ActivatedRoute): OGridPermissions;
    getTreePermissions(attr: string, actRoute: ActivatedRoute): OTreePermissions;
    getMenuPermissions(attr: string): OPermissions;
    getAllMenuPermissions(): OPermissions[];
    getOButtonPermissions(attr: string, actRoute: ActivatedRoute): OPermissions;
    protected mergeOPermissionsArrays(permissionsA: OPermissions[], permissionsB: OPermissions[]): OPermissions[];
    protected mergeOTableMenuPermissions(permissionsA: OTableMenuPermissions, permissionsB: OTableMenuPermissions): OTableMenuPermissions;
    isPermissionIdRouteRestricted(permissionId: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PermissionsService>;
}
