import { RawRule, Ability } from '@casl/ability'; export declare namespace Permission { enum Level { feedMe = 0, business = 1, restaurant = 2 } enum Action { manage = "manage", create = "create", read = "read", update = "update", delete = "delete" } } export declare namespace Permission.Subject { enum Feedme { all = "all", restaurant = "restaurant", business = "business", delivery = "delivery", agent = "agent" } enum FeedmeBusinessField { quota = "quota", owner = "owner" } enum Business { profile = "business::profile", restaurant = "business::restaurant", menu = "business::menu", promotion = "business::promotion", voucher = "business::voucher", membership = "business::membership", stock = "business::stock", permission = "business::permission", role = "business::role" } enum Restaurant { restaurant = "restaurant" } } export interface AbilityConstructOption { userId: string; level: number; role: string; businessId?: string; restaurantId?: string; } export interface PermissionLevelDetail { isAdmin: (perviousLevel: Ability, option: AbilityConstructOption) => boolean; getRules: (options: AbilityConstructOption) => Promise; } export declare const fullPermission: { [key: string]: IFdtoPortalPermission; }; export interface IFdtoPortalPermission extends RawRule { label: string; } export interface IPermissionUser { businessId: string; userId: string; /** @deprecated */ email?: string; /** @deprecated */ phoneNumber?: string; permissions: RawRule[]; }