/**
 * Structure query functions — read-only DB queries for directory structure,
 * hotspots, and module boundaries.
 *
 * Split from structure.ts to separate query-time concerns (DB reads, sorting,
 * pagination) from build-time concerns (directory insertion, metrics computation,
 * role classification).
 */
import type { CodegraphConfig } from '../types.js';
interface StructureDataOpts {
    directory?: string;
    depth?: number;
    sort?: string;
    noTests?: boolean;
    full?: boolean;
    fileLimit?: number;
    limit?: number;
    offset?: number;
}
interface DirectoryEntry {
    directory: string;
    fileCount: number;
    symbolCount: number;
    fanIn: number;
    fanOut: number;
    cohesion: number | null;
    density: number;
    files: {
        file: string;
        lineCount: number;
        symbolCount: number;
        importCount: number;
        exportCount: number;
        fanIn: number;
        fanOut: number;
    }[];
    subdirectories: string[];
}
export declare function structureData(customDbPath?: string, opts?: StructureDataOpts): {
    directories: DirectoryEntry[];
    count: number;
    suppressed?: number;
    warning?: string;
};
interface HotspotsDataOpts {
    metric?: string;
    level?: string;
    limit?: number;
    offset?: number;
    noTests?: boolean;
}
export declare function hotspotsData(customDbPath?: string, opts?: HotspotsDataOpts): {
    metric: string;
    level: string;
    limit: number;
    hotspots: unknown[];
};
interface ModuleBoundariesOpts {
    threshold?: number;
    config?: CodegraphConfig;
}
export declare function moduleBoundariesData(customDbPath?: string, opts?: ModuleBoundariesOpts): {
    threshold: number;
    modules: {
        directory: string;
        cohesion: number | null;
        fileCount: number;
        symbolCount: number;
        fanIn: number;
        fanOut: number;
        files: string[];
    }[];
    count: number;
};
export {};
//# sourceMappingURL=structure-query.d.ts.map