import { PermissionBinding, GuidValue, SecurityContextParamRegistrationHandler, IMessageBusTopicSubscription, RoleResourceEvaluator, RolePermissionEvaluator, RolePermissionSettingWithContextParam } from "../../models";
export declare class PermissionService {
    private securityService;
    private omniaContext;
    private overridenRulesBindingIdentity;
    private resourceEvaluators;
    private permissionEvaluators;
    private registeredKey;
    private context;
    private NonAppInstanceKey;
    private permissionBindings;
    private loadAppInstancePermissionBindingsPromises;
    private loadContextPermissionPromises;
    private loadRulePromise;
    private get contextChangedMsgBus();
    constructor();
    registerResourceEvaluator(roleId: GuidValue, evaluator: RoleResourceEvaluator): void;
    registerPermissionEvaluator(roleId: GuidValue, evaluator: RolePermissionEvaluator): void;
    ensureContextParam(key: string): SecurityContextParamRegistrationHandler;
    get onPermissionContextChanged(): IMessageBusTopicSubscription<void>;
    getPermissionBindings(roleIds: Array<string>, contextParams?: {
        [key: string]: string | number;
    }): Promise<{
        [roleId: string]: PermissionBinding[];
    }>;
    hasPermissionForRole(roleId: GuidValue, contextParams?: {
        [key: string]: string | number;
    }): Promise<boolean>;
    hasPermissionForRoles(roleIds: GuidValue[], contextParams?: {
        [key: string]: string | number;
    }): Promise<boolean>;
    hasPermissionForRolesInApp(roleIds: GuidValue[], appInstanceId: GuidValue): Promise<boolean>;
    addOrUpdatePermissionBindings(rolePermissionSettingWithParam: RolePermissionSettingWithContextParam, contextParams?: {
        [key: string]: string | number;
    }, serviceId?: GuidValue): Promise<void>;
    clearCache(): void;
    clearPermissionCache(appInstanceId: string): void;
    private getMergedContextParams;
    private getContextHash;
    private ensurePermissionsForContext;
    private getPermissionForContext;
    private evaluateRoles;
    private evaluateRequiredRoles;
    private evaluateWithSystemDefinedRulesBindings;
    private evaluateRole;
    private evaluateCustomPermissionEvaluatorRole;
    private evaluateSystemDefinedRuleRoles;
    private evaluateSecurityRules;
    private evaluateWithIdentityBindings;
    private ensureLoadPermissionBindings;
    private ensureLoadRules;
    private resolveRoleResources;
    private getResourceInfo;
    private getCustomRoleResource;
    private getContextParamsWithLowerKey;
    private ensureRegisterBusinessProfileContextParam;
    private ensureRegisterAppInstanceContextParam;
    private getRoleIdKey;
}
