import { SmrtCollection } from '@happyvertical/smrt-core'; import { MembershipOverride } from '../models/MembershipOverride.js'; import { OverrideEffect } from '../types/index.js'; /** * Collection for managing MembershipOverride objects */ export declare class MembershipOverrideCollection extends SmrtCollection { static readonly _itemClass: typeof MembershipOverride; /** * Find all overrides for a membership */ findByMembership(membershipId: string): Promise; /** * Find grant overrides for a membership. * * Filters in memory because the `effect` column is JSON-typed and * Postgres rejects bare `json = text` comparisons. A single * `findByMembership` call is reused for both grant and deny lookups * within the same request (see `_overridesByMembership` cache). */ findGrants(membershipId: string): Promise; /** * Find deny overrides for a membership. * * See `findGrants` for rationale on in-memory filtering. */ findDenies(membershipId: string): Promise; /** * Get grant permission IDs for a membership */ getGrantedPermissionIds(membershipId: string): Promise; /** * Get denied permission IDs for a membership */ getDeniedPermissionIds(membershipId: string): Promise; /** * Set an override for a membership */ setOverride(membershipId: string, permissionId: string, effect: OverrideEffect): Promise; /** * Remove an override */ removeOverride(membershipId: string, permissionId: string): Promise; /** * Grant a permission to a membership * Convenience method for setOverride with GRANT effect */ grantPermission(membershipId: string, permissionId: string): Promise; /** * Deny a permission for a membership * Convenience method for setOverride with DENY effect */ denyPermission(membershipId: string, permissionId: string): Promise; } //# sourceMappingURL=MembershipOverrideCollection.d.ts.map