import { Migration, MigrationRecord } from '../configuration/types';
import { SurrealDBClient } from '../infrastructure/client';
export declare class MigrationRepository {
    private client;
    private schemaPath?;
    private dryRun;
    private debug;
    constructor(client: SurrealDBClient, schemaPath?: string, dryRun?: boolean);
    initialize(): Promise<void>;
    canApplyMigration(number: string, name: string, requestedDirection: 'up' | 'down'): Promise<{
        canApply: boolean;
        reason?: string;
    }>;
    getLatestMigrationStatus(number: string, name: string): Promise<Migration | null>;
    addMigration(migration: MigrationRecord): Promise<void>;
    getMigrationStatus(direction: string, number: string, name: string, filename?: string): Promise<Migration | null>;
    getMigrationsByDirectionAndPath(direction: string, path: string): Promise<Migration[]>;
    findLastMigrations(moduleIds: string[]): Promise<Migration[]>;
    updateMigrationStatus(recordId: string, status: 'success' | 'fail'): Promise<void>;
    getAllModuleStatusCounts(moduleIds?: string[]): Promise<Map<string, {
        appliedCount: number;
        totalCount: number;
        lastApplied?: Date;
    }>>;
}
