import { Driver, RecordShape } from 'neo4j-driver';
import { MigrationInfo, Neo4jMigrationNode } from '../types';
export declare class Repository {
    private readonly driver;
    constructor(driver: Driver);
    applyMigration(migration: Neo4jMigrationNode, fromVersion: string, duration: number): Promise<void>;
    cleanConstraints(): Promise<void>;
    cleanMigrations(): Promise<void>;
    createMigrationRelation(fromVersion: string, toVersion: string): Promise<void>;
    deleteMigration(version: string): Promise<void>;
    executeQueries(queries: Array<{
        parameters?: RecordShape;
        statement: string;
    }>): Promise<void>;
    executeQuery(query: {
        parameters?: RecordShape;
        statement: string;
    }): Promise<void>;
    getMigrationInfo(version: string): Promise<MigrationInfo | null>;
    getMigrationState(): Promise<{
        appliedMigrations: MigrationInfo[];
        baselineExists: boolean;
        latestMigration: Neo4jMigrationNode | null;
    }>;
    initializeBaseline(): Promise<void>;
    initializeSchema(): Promise<void>;
    markAsLatestMigration(version: string): Promise<void>;
}
