/** * Access Control Extension Point * * Allows custom access control policies for filesystem operations */ import { Request } from 'express'; /** * Access control context */ export interface AccessContext { /** * Express request object */ request: Request; /** * Workspace ID */ workspace: string; /** * File path segments */ path: string[]; /** * User information (if available from authentication middleware) */ user?: { id: string; name?: string; roles?: string[]; [key: string]: any; }; } /** * Custom access control interface */ export interface IAccessControl { /** * Check if the current user can read the specified file/directory * * @param context - Access control context * @returns true if read access is allowed */ canRead(context: AccessContext): Promise; /** * Check if the current user can write to the specified file/directory * * @param context - Access control context * @returns true if write access is allowed */ canWrite(context: AccessContext): Promise; /** * Check if the current user can delete the specified file/directory * * @param context - Access control context * @returns true if delete access is allowed */ canDelete(context: AccessContext): Promise; /** * Check if the current user can list the contents of a directory * * @param context - Access control context * @returns true if list access is allowed */ canList(context: AccessContext): Promise; } //# sourceMappingURL=IAccessControl.d.ts.map