import type { DatabaseAdapter, MomentumConfig } from '@momentumcms/core'; import type { MomentumAPIContext } from './momentum-api.types'; export type { DatabaseAdapter, MomentumConfig, ResolvedMomentumConfig } from '@momentumcms/core'; /** * Query options for database operations. */ export interface QueryOptions { limit?: number; page?: number; sort?: string; where?: Record; [key: string]: unknown; } /** * Momentum request object - framework-agnostic. */ export interface MomentumRequest { method: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE'; collectionSlug: string; id?: string; body?: Record; query?: QueryOptions; /** User context for access control */ user?: MomentumAPIContext['user']; } /** * Validation error structure. */ export interface ValidationError { field: string; message: string; } /** * Momentum response object - framework-agnostic. */ export interface MomentumResponse { status?: number; docs?: Record[]; doc?: Record | null; totalDocs?: number; totalPages?: number; page?: number; limit?: number; hasNextPage?: boolean; hasPrevPage?: boolean; nextPage?: number; prevPage?: number; deleted?: boolean; id?: string; error?: string; errors?: ValidationError[]; } /** * Momentum handlers interface. */ export interface MomentumHandlers { handleFind(request: MomentumRequest): Promise; handleFindById(request: MomentumRequest): Promise; handleCreate(request: MomentumRequest): Promise; handleUpdate(request: MomentumRequest): Promise; handleDelete(request: MomentumRequest): Promise; handleForceDelete(request: MomentumRequest): Promise; handleRestore(request: MomentumRequest): Promise; handleSearch(request: MomentumRequest): Promise; routeRequest(request: MomentumRequest): Promise; } /** * Creates Momentum CMS handlers. * Framework-agnostic - can be used with Express, h3, Fastify, etc. * * Now delegates to the MomentumAPI singleton for consistent behavior * between HTTP requests and direct API calls. */ export declare function createMomentumHandlers(config: MomentumConfig): MomentumHandlers; /** * In-memory database adapter for development/testing. */ export declare function createInMemoryAdapter(): DatabaseAdapter;