import type { FastifyRequest, FastifyReply } from 'fastify'; import type { Kysely } from 'kysely'; import type { ResolvedModel } from '../schema/types.js'; import type { SchemaRegistry } from '../schema/registry.js'; import type { ModelAccessOptions } from '../model-api/types.js'; /** Shared dependencies passed to each handler factory. */ export interface HandlerContext { model: ResolvedModel; registry: SchemaRegistry; db: Kysely; modelAccessOpts: Omit; } /** GET /model — Returns a paginated list of records with filtering, sorting, and field selection. */ export declare function listHandler(ctx: HandlerContext): (request: FastifyRequest, reply: FastifyReply) => Promise; /** GET /model/:id — Returns a single record by ID with optional field selection. */ export declare function getHandler(ctx: HandlerContext): (request: FastifyRequest, reply: FastifyReply) => Promise; /** POST /model — Creates a new record after validating required fields. */ export declare function createHandler(ctx: HandlerContext): (request: FastifyRequest, reply: FastifyReply) => Promise; /** PUT /model/:id — Updates an existing record after verifying it exists within auth scopes. */ export declare function updateHandler(ctx: HandlerContext): (request: FastifyRequest, reply: FastifyReply) => Promise; /** DELETE /model/:id — Deletes a record after verifying it exists within auth scopes. */ export declare function deleteHandler(ctx: HandlerContext): (request: FastifyRequest, reply: FastifyReply) => Promise; //# sourceMappingURL=handlers.d.ts.map