import { UserComparatorService } from '../../user/services/user-comparator.service';
import { Task } from '../../resources/interface/task';
import { UserService } from '../../user/services/user.service';
import { Case } from '../../resources/interface/case';
import { PetriNetReferenceWithPermissions } from '../../process/petri-net-reference-with-permissions';
import { Permissions, UserPermissions } from '../../process/permissions';
import { User } from "../../user/models/user";
import * as i0 from "@angular/core";
export declare class PermissionService {
    protected userComparator: UserComparatorService;
    protected _userService: UserService;
    constructor(userComparator: UserComparatorService, _userService: UserService);
    hasTaskPermission(task: Task | undefined, permission: string): boolean;
    hasCasePermission(case_: Case | undefined, permission: string): boolean;
    resolvePermissions(rolePermValue: boolean | undefined, userPermValue: boolean | undefined): boolean;
    hasNetPermission(action: string, net: PetriNetReferenceWithPermissions): boolean;
    canAssign(task: Task | undefined): boolean;
    canCancel(task: Task | undefined): boolean;
    canReassign(task: Task | undefined): boolean;
    canFinish(task: Task | undefined): boolean;
    canCollapse(task: Task | undefined): boolean;
    checkRolePerms(roles: Permissions, permission: string): boolean | undefined;
    checkUserPerms(users: UserPermissions, permission: any): boolean | undefined;
    protected getPermissionByUserOrGroup(permissions: UserPermissions, permission: any, loggedUser: User): boolean | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PermissionService>;
}
