import { MongoAbility, AbilityTuple, InferSubjects } from '@casl/ability'; declare const actions: readonly ["manage", "create", "read", "update", "delete"]; interface Organisation { kind: "Organisation"; id: string; owner: string; } interface Member { kind: "Member"; id: string; } interface Project { kind: "Project"; id: string; } interface Task { kind: "Task"; id: string; } interface Comment { kind: "Comment"; id: string; } interface Document { kind: "Document"; id: string; } interface Folder { kind: "Folder"; id: string; } interface File { kind: "File"; id: string; } interface ProjectMember { kind: "ProjectMember"; id: string; } interface Role { kind: "Role"; id: string; } interface Permission { kind: "Permission"; id: string; } declare const subjects: readonly ["all", "Organisation", "Member", "Project", "Task", "Comment", "Document", "Folder", "File", "ProjectMember", "Role", "Permission"]; type SubjectTuple = InferSubjects; type Subject = (typeof subjects)[number]; type Action = (typeof actions)[number]; type AbilitiesTuple = AbilityTuple; type AppAbility = MongoAbility; export { type AbilitiesTuple, type Action, type AppAbility, type Subject, type SubjectTuple, actions, subjects };