import { globToRegex } from '../shared/globs.js';
import type { BetterSqlite3Database } from '../types.js';
export { globToRegex };
interface PresetDef {
    layers: string[];
    description: string;
}
export declare const PRESETS: Record<string, PresetDef>;
interface ResolvedModule {
    regex: RegExp;
    pattern: string;
    layer?: string;
}
interface ModuleDef {
    match: string;
    layer?: string;
}
interface BoundaryRule {
    from: string;
    notTo?: string[];
    onlyTo?: string[];
    message?: string;
}
interface BoundaryConfig {
    modules?: Record<string, string | ModuleDef>;
    preset?: string;
    rules?: BoundaryRule[];
}
export declare function resolveModules(boundaryConfig: BoundaryConfig | undefined): Map<string, ResolvedModule>;
export declare function validateBoundaryConfig(config: unknown): {
    valid: boolean;
    errors: string[];
};
export interface BoundaryViolation {
    rule: string;
    name: string;
    file: string;
    targetFile: string;
    message: string;
    value: number;
    threshold: number;
}
interface EvaluateBoundariesOpts {
    scopeFiles?: string[];
    noTests?: boolean;
}
export declare function evaluateBoundaries(db: BetterSqlite3Database, boundaryConfig: BoundaryConfig | undefined, opts?: EvaluateBoundariesOpts): {
    violations: BoundaryViolation[];
    violationCount: number;
};
//# sourceMappingURL=boundaries.d.ts.map