import { MigrationsConfig, ModuleConfig } from '../configuration/config-loader';
export interface DependencyNode {
    moduleId: string;
    config: ModuleConfig;
    dependencies: string[];
    dependents: string[];
}
export interface ResolutionResult {
    executionOrder: string[];
    dependencyGraph: Map<string, DependencyNode>;
}
export interface RollbackValidation {
    canRollback: boolean;
    blockedBy: string[];
    reason?: string;
}
export declare class DependencyResolver {
    private basePath;
    private config;
    private dependencyGraph;
    constructor(basePath: string);
    initialize(configPath?: string): Promise<void>;
    private autoDiscoverModules;
    private buildDependencyGraph;
    getExecutionOrder(targetModules?: string[]): string[];
    getRollbackOrder(targetModules?: string[]): string[];
    validateRollback(moduleId: string, targetModules?: string[]): RollbackValidation;
    validateModuleExists(moduleId: string): boolean;
    getModuleDependencies(moduleId: string): string[];
    getModuleDependents(moduleId: string): string[];
    getAllModules(): string[];
    getResolutionResult(targetModules?: string[]): ResolutionResult;
    getConfig(): MigrationsConfig | null;
    hasConfig(): boolean;
    static createResolver(basePath: string, configPath?: string): Promise<DependencyResolver>;
}
