import type { FastifyRequest, FastifyReply } from 'fastify'; import type { ResolvedModel } from '../schema/types.js'; import type { DatabaseClient } from '../db/client.js'; import type { ScopeFilter, RequestContext } from './types.js'; import type { ScopeRegistry } from './scope-registry.js'; export { applyScopeFiltersToQuery } from './scope-filters.js'; export interface ScopeHookContext { model: ResolvedModel; scopeRegistry: ScopeRegistry; db: DatabaseClient; filterProviders?: FilterProvider[]; } export type FilterProvider = (model: ResolvedModel, authCtx: RequestContext, request: FastifyRequest) => ScopeFilter[] | Promise; export declare function createScopeHook(ctx: ScopeHookContext): (request: FastifyRequest, _reply: FastifyReply) => Promise; export declare function createScopeWriteGuard(ctx: ScopeHookContext): (request: FastifyRequest, _reply: FastifyReply) => Promise; //# sourceMappingURL=scopes.d.ts.map