import { SuperDoc } from '../SuperDoc.js'; import { CanPerformPermissionParams, PermissionResolver, User } from '../types/index.js'; export declare const PERMISSIONS: Readonly<{ RESOLVE_OWN: "RESOLVE_OWN"; RESOLVE_OTHER: "RESOLVE_OTHER"; REJECT_OWN: "REJECT_OWN"; REJECT_OTHER: "REJECT_OTHER"; COMMENTS_OVERFLOW_OWN: "COMMENTS_OVERFLOW"; COMMENTS_OVERFLOW_OTHER: "COMMENTS_OVERFLOW_OTHER"; COMMENTS_DELETE_OWN: "COMMENTS_DELETE_OWN"; COMMENTS_DELETE_OTHER: "COMMENTS_DELETE_OTHER"; UPLOAD_VERSION: "UPLOAD_VERSION"; VERSION_HISTORY: "VERSION_HISTORY"; }>; interface PermissionContext { comment?: object | null; superdoc?: SuperDoc | null; currentUser?: User | null; permissionResolver?: PermissionResolver; trackedChange?: object | null; } export declare const BUILT_IN_PERMISSION_METHOD: unique symbol; export declare const createTrackedChangePermissionResolver: (superdoc: SuperDoc) => (payload?: CanPerformPermissionParams) => boolean; export declare const readBuiltInTrackedChangePermissionDecision: (superdoc: unknown, canPerform: unknown, permission: string, trackedChange: unknown) => boolean | null; export declare const isAllowed: (permission: string, role: string | undefined, isInternal: boolean | undefined, context?: PermissionContext) => boolean; export {};