import type { SymbolKind } from "../types.js";
export interface ShapeCluster {
    hash: string;
    root_node_type: string;
    count: number;
    node_count: number;
    shape_preview: string;
    examples: Array<{
        name: string;
        kind: SymbolKind;
        file: string;
        start_line: number;
    }>;
}
export interface FrequencyResult {
    clusters: ShapeCluster[];
    summary: {
        total_symbols_analyzed: number;
        total_nodes_hashed: number;
        total_clusters_found: number;
        clusters_returned: number;
        skipped_no_source: number;
        skipped_truncated: number;
        skipped_below_min: number;
        low_signal: boolean;
    };
}
export declare function djb2(s: string): number;
export declare function normalizeNodeType(nodeType: string, _text: string): string;
export interface HashResult {
    hash: number;
    nodeCount: number;
    normalizedPreview: string;
}
export declare function hashSubtree(root: any): HashResult;
interface FrequencyOptions {
    top_n?: number | undefined;
    min_nodes?: number | undefined;
    file_pattern?: string | undefined;
    kind?: string | undefined;
    include_tests?: boolean | undefined;
    token_budget?: number | undefined;
}
export declare function frequencyAnalysis(repo: string, options?: FrequencyOptions): Promise<FrequencyResult>;
export {};
//# sourceMappingURL=frequency-tools.d.ts.map