import { DependencyResolver } from '../domain/dependency-resolver';
export interface PatternResolutionResult<T> {
    resolved: T[];
    notFound: string[];
}
export interface ResolvedModule {
    moduleId: string;
    pattern: string;
}
export interface ResolvedFilename {
    filename: string;
    pattern: string;
    moduleId: string;
    number: string;
    name: string;
    direction: 'up' | 'down';
}
export declare class PatternResolver {
    private resolver;
    private basePath;
    private static readonly MODULE_PATTERN;
    private static readonly MIGRATION_PATTERN;
    private debug;
    constructor(resolver: DependencyResolver, basePath: string);
    /**
     * Resolve module patterns using auto-globbing
     * Examples: "10" -> "010_auth", "auth" -> "010_auth", "010_auth" -> "010_auth"
     */
    resolveModules(patterns: string[]): PatternResolutionResult<ResolvedModule>;
    /**
     * Resolve filename patterns using auto-globbing
     * Examples: "1" -> "0001_authentication_up.surql", "auth" -> "0001_authentication_up.surql"
     */
    resolveFilenames(patterns: string[], targetModules?: string[], direction?: 'up' | 'down'): Promise<PatternResolutionResult<ResolvedFilename>>;
    /**
     * Special rollback filename resolution - handles dependency checking
     */
    resolveRollbackFilenames(patterns: string[], targetModules?: string[]): Promise<PatternResolutionResult<ResolvedFilename> & {
        dependencyWarnings: string[];
    }>;
    private findMatchingModule;
    private findMatchingFile;
    private matchesFilePattern;
    private getModuleFiles;
}
