import * as papr from 'papr';
import { BaseSchema, SchemaOptions } from 'papr';
import { FastifyInstance } from 'fastify';
import { Db } from 'mongodb';
import { ModelRegistrationPair, FastifyPapr } from './types.js';

/**
 * Creates a helper for managing Papr models
 * Handles model registration and index creation
 *
 * @param fastify Fastify instance for logging
 * @param db MongoDB database connection
 * @param disableSchemaReconciliation Whether to skip schema validation reconciliation
 * @returns Object with registration methods
 */
declare const paprHelper: (fastify: Readonly<FastifyInstance>, db: Db, disableSchemaReconciliation?: boolean) => {
    /**
     * Registers multiple models at once
     * @param models Model registration definitions
     * @returns Object with registered models
     */
    register(models: ModelRegistrationPair<FastifyPapr>): Promise<{
        [k: string]: papr.Model<BaseSchema, SchemaOptions<Partial<BaseSchema>>>;
    }>;
};

export { paprHelper };
