import { PermissionUser } from './permission.model'; import { AbilityConstructOption } from './permission.interface'; import { BusinessService } from '~backend/business/business.service'; import { Ability, RawRule } from '@casl/ability'; import { RestaurantService } from '~backend/business/restaurant/restaurant.service'; import { DocumentType, ReturnModelType } from '@typegoose/typegoose'; import { AgentService } from '~backend/agent/agent.service'; import { Business } from '~backend/business/business.interface'; export declare class PermissionService { readonly permissionUserModel: ReturnModelType; private readonly businessService; private readonly restaurantService; private readonly agentService; private readonly logger; constructor(permissionUserModel: ReturnModelType, businessService: BusinessService, restaurantService: RestaurantService, agentService: AgentService); private permissionLevelDetail; getAbility(rules: RawRule[]): any; constructAbility(opts: AbilityConstructOption): Promise<{ [level: number]: Ability; }>; get fullPermission(): { [key: string]: import("./permission.interface").IFdtoPortalPermission; }; findByBusinessId(id: string): Promise[]>; findByUserId(userId: string): Promise[]>; findById({ userId, businessId, }: { userId: string; businessId: string; }): Promise[]>; create(user: PermissionUser): Promise; update(id: string, user: PermissionUser): Promise; delete(id: string): Promise; deleteFromBusiness(businessId: string): Promise; createBusinessOwnerPermissionUser(business: Business): Promise; }