import { HttpClient } from '@angular/common/http';
import { Injector } from '@angular/core';
import { OAuthService } from 'angular-oauth2-oidc';
import { ApplicationContextService } from '../app-context/application-context.service';
import { ComponentContextService } from '../app-context/component-context.service';
import { Permission } from '../models/permission';
import { ResponseResult } from '../models/response-result';
import { BaseService } from './base.service';
import { ModuleConfigService } from './module-config.service';
import { UserService } from './user.service';
export declare class PhanQuyenModel {
    subjectType: number;
    idUserGroups?: string[];
    idUsers?: string[];
    addRoleIds?: string[];
    removeRoleIds?: string[];
    addPermissionIds?: string[];
    removePermissionIds?: string[];
    constructor(init: PhanQuyenModel);
}
export declare class PermissionService extends BaseService {
    private _moduleConfigService;
    private _userService;
    private _oauthService;
    private _appContext;
    readonly storage: Storage;
    readonly _config: any;
    readonly ignoreAdmin = false;
    delayCheckPermissions: any[];
    root: ComponentContextService;
    appCode: string;
    constructor(http: HttpClient, injector: Injector, _moduleConfigService: ModuleConfigService, _userService: UserService, _oauthService: OAuthService, _appContext: ApplicationContextService);
    clearPermissionCacheAll(): Promise<ResponseResult>;
    clearPermissionCache(lstModule: string[]): Promise<ResponseResult>;
    getCurrentUserPermission(): Promise<ResponseResult>;
    getAllBasePermission(userId?: string): Promise<ResponseResult>;
    /**
     * Truyền vào danh sách permision cần check
     * @param lstPermissionCode những perrmision code cần check => nên dùng trong trường hợp check các button trong code
     * @returns trả ra các perrmisionCode có quyền
     */
    getPermissionAuthorized(lstPermissionCode: string[]): Promise<string[]>;
    isAuthorizedPermission(permission: string): Promise<boolean>;
    isAuthorized(service: string, permission: string, checForMenu?: boolean): Promise<boolean>;
    checkPermission(service: any, permissionToCheck: string, checkForMenu?: boolean): Promise<boolean>;
    _checkPermission(userPermissions: string[], permissionToCheck: string): boolean;
    _checkPermissionOld(userPermissions: string[], permissionToCheck: string): boolean;
    isAuthorizedByPermissions(permissions: Array<Permission>, operator?: string, ignoreAdmin?: boolean): Promise<boolean>;
    getServicePermission(service: any, overrideLocalStorage?: boolean): Promise<string[]>;
    getPermissionIdsByModule(moduleCode: string, userId: string): Promise<ResponseResult>;
    phanQuyenNguoiDung(model: PhanQuyenModel): Promise<ResponseResult>;
}
//# sourceMappingURL=permission.service.d.ts.map