/**
 * Compact text formatters for MCP tool output.
 * Raw text uses ~50-70% fewer tokens than JSON for the same data.
 */
import type { CodeSymbol, SymbolKind } from "./types.js";
import type { PerfHotspotsResult } from "./tools/perf-tools.js";
import type { FanInFanOutResult, CoChangeResult } from "./tools/coupling-tools.js";
import type { ArchitectureSummaryResult } from "./tools/architecture-tools.js";
export declare function formatTable(headers: string[], rows: Array<string[]>, options?: {
    maxColWidth?: number;
}): string;
interface SearchResult {
    symbol: CodeSymbol;
    score: number;
}
export declare function formatSearchSymbols(results: SearchResult[]): string;
interface CompactFileEntry {
    path: string;
    symbols: number;
}
interface FileTreeNode {
    name: string;
    path: string;
    type: "dir" | "file";
    symbol_count?: number;
    children?: FileTreeNode[];
}
export declare function formatFileTree(data: CompactFileEntry[] | FileTreeNode[] | {
    entries: CompactFileEntry[];
    truncated: boolean;
    total: number;
    hint: string;
}): string;
interface OutlineEntry {
    id: string;
    name: string;
    kind: SymbolKind;
    start_line: number;
    end_line: number;
    signature?: string;
    parent?: string;
}
export declare function formatFileOutline(data: {
    symbols: OutlineEntry[];
    truncated?: boolean;
    total_symbols?: number;
}): string;
interface PatternMatch {
    name: string;
    kind: SymbolKind;
    file: string;
    start_line: number;
    context: string;
}
interface PatternResult {
    matches: PatternMatch[];
    pattern: string;
    scanned_symbols: number;
}
export declare function formatSearchPatterns(data: PatternResult): string;
interface DeadCodeCandidate {
    name: string;
    kind: SymbolKind;
    file: string;
    start_line: number;
    end_line: number;
}
export declare function formatDeadCode(data: {
    candidates: DeadCodeCandidate[];
    scanned_symbols: number;
    scanned_files: number;
}): string;
interface ComplexityEntry {
    name: string;
    kind: string;
    file: string;
    start_line: number;
    lines: number;
    cyclomatic_complexity: number;
    max_nesting_depth: number;
}
export declare function formatComplexity(data: {
    functions: ComplexityEntry[];
    summary: Record<string, number>;
}): string;
interface ClonePair {
    symbol_a: {
        name: string;
        file: string;
        start_line: number;
    };
    symbol_b: {
        name: string;
        file: string;
        start_line: number;
    };
    similarity: number;
    shared_lines: number;
}
export declare function formatClones(data: {
    clones: ClonePair[];
    scanned_symbols: number;
    threshold: number;
}): string;
interface HotspotEntry {
    file: string;
    commits: number;
    lines_changed: number;
    symbol_count: number;
    hotspot_score: number;
}
export declare function formatHotspots(data: {
    hotspots: HotspotEntry[];
    period: string;
}): string;
interface DirSummary {
    path: string;
    file_count: number;
    symbol_count: number;
    languages: string[];
}
export declare function formatRepoOutline(data: {
    directories: DirSummary[];
    total_symbols: number;
    total_files: number;
}): string;
interface SuggestResult {
    top_files: Array<{
        path: string;
        symbols: number;
    }>;
    kind_distribution: Record<string, number>;
    example_queries: string[];
}
export declare function formatSuggestQueries(data: SuggestResult): string;
interface SecretFinding {
    rule: string;
    masked_secret: string;
    confidence: string;
    severity: string;
    file: string;
    line: number;
}
export declare function formatSecrets(data: {
    findings: SecretFinding[];
    files_scanned: number;
    files_with_secrets: number;
}): string;
interface ConversationResult {
    session_id: string;
    timestamp: string;
    user_question: string;
    assistant_answer: string;
    score: number;
}
export declare function formatConversations(data: {
    results: ConversationResult[];
} | ConversationResult[]): string;
interface RoleEntry {
    name: string;
    kind: string;
    file: string;
    role: string;
    callers: number;
    callees: number;
}
export declare function formatRoles(data: {
    symbols: RoleEntry[];
} | RoleEntry[]): string;
interface AssembleResult {
    symbols?: Array<{
        name: string;
        kind: string;
        file: string;
        start_line: number;
        source?: string;
        signature?: string;
    }>;
    compact_symbols?: Array<{
        name: string;
        kind: string;
        file: string;
        start_line: number;
        signature?: string;
        docstring?: string;
    }>;
    file_summaries?: Array<{
        path: string;
        language: string;
        exports: string[];
        symbol_count: number;
    }>;
    directory_overview?: Array<{
        path: string;
        file_count: number;
        symbol_count: number;
        top_files: string[];
    }>;
    level: string;
    total_tokens: number;
    truncated: boolean;
    result_count: number;
}
export declare function formatAssembleContext(data: AssembleResult): string;
interface Community {
    id: number;
    name: string;
    files: string[];
    symbol_count: number;
    internal_edges: number;
    external_edges: number;
    cohesion: number;
}
interface CommunitiesResult {
    communities: Community[];
    modularity: number;
    total_files: number;
}
interface CallNode {
    symbol: {
        name: string;
        kind: string;
        file: string;
        start_line: number;
    };
    children: CallNode[];
}
export declare function formatCallTree(data: CallNode | string): string;
interface RouteResult {
    path: string;
    handlers: Array<{
        file: string;
        symbol?: {
            name: string;
            kind: string;
            file: string;
            start_line: number;
        };
    }>;
    call_chain: Array<{
        name: string;
        file: string;
        kind: string;
        depth: number;
    }>;
    db_calls: Array<{
        symbol_name: string;
        file: string;
        line: number;
        operation: string;
    }>;
    middleware?: {
        file: string;
        matchers: string[];
        applies: boolean;
    };
    layout_chain?: string[];
    server_actions?: Array<{
        name: string;
        file: string;
        called_from?: string;
    }>;
}
export declare function formatTraceRoute(data: RouteResult | string): string;
interface DiffOutlineResult {
    added: Array<{
        name: string;
        kind: string;
        file: string;
        start_line: number;
    }>;
    modified: Array<{
        name: string;
        kind: string;
        file: string;
        start_line: number;
    }>;
    deleted: string[];
}
export declare function formatDiffOutline(data: DiffOutlineResult): string;
interface ChangedFileSymbols {
    file: string;
    symbols: string[];
    diff?: string;
}
export declare function formatChangedSymbols(data: ChangedFileSymbols[]): string;
interface ImpactResult {
    changed_files: string[];
    affected_symbols: Array<{
        name: string;
        kind: string;
        file: string;
        start_line: number;
    }>;
    affected_tests: Array<{
        test_file: string;
        reason: string;
    }>;
    risk_scores: Array<{
        file: string;
        risk: string;
        score: number;
    }>;
    dependency_graph: Record<string, string[]>;
}
export declare function formatImpactAnalysis(data: ImpactResult): string;
interface KnowledgeMapResult {
    modules: Array<{
        path: string;
        symbol_count: number;
    }>;
    edges: Array<{
        from: string;
        to: string;
    }>;
    circular_deps: Array<{
        cycle: string[];
    }>;
    truncated?: boolean;
    total_modules?: number;
}
export declare function formatKnowledgeMap(data: KnowledgeMapResult | {
    mermaid: string;
}): string;
export declare function formatCommunities(data: CommunitiesResult | string): string;
export declare function formatReviewDiff(data: unknown): string;
export declare function formatPerfHotspots(data: PerfHotspotsResult): string;
export declare function formatFanInFanOut(data: FanInFanOutResult): string;
export declare function formatCoChange(data: CoChangeResult): string;
export declare function formatArchitectureSummary(data: ArchitectureSummaryResult): string;
import type { NextjsComponentsResult } from "./tools/nextjs-component-tools.js";
export declare function formatNextjsComponents(result: NextjsComponentsResult): string;
import type { NextjsRouteMapResult } from "./tools/nextjs-route-tools.js";
import type { NextjsMetadataAuditResult } from "./tools/nextjs-metadata-tools.js";
import type { ServerActionsAuditResult } from "./tools/nextjs-security-tools.js";
import type { ApiContractResult } from "./tools/nextjs-api-contract-tools.js";
import type { NextjsBoundaryResult } from "./tools/nextjs-boundary-tools.js";
import type { LinkIntegrityResult } from "./tools/nextjs-link-tools.js";
import type { NextjsDataFlowResult } from "./tools/nextjs-data-flow-tools.js";
import type { NextjsMiddlewareCoverageResult } from "./tools/nextjs-middleware-coverage-tools.js";
import type { FrameworkAuditResult, PrioritizedAudit } from "./tools/nextjs-framework-audit-tools.js";
export declare function formatNextjsRouteMap(result: NextjsRouteMapResult): string;
export declare function formatNextjsMetadataAudit(result: NextjsMetadataAuditResult): string;
export declare function formatNextjsAuditServerActions(result: ServerActionsAuditResult): string;
export declare function formatNextjsApiContract(result: ApiContractResult): string;
export declare function formatNextjsBoundaryAnalyzer(result: NextjsBoundaryResult): string;
export declare function formatNextjsDataFlow(result: NextjsDataFlowResult): string;
export declare function formatNextjsMiddlewareCoverage(result: NextjsMiddlewareCoverageResult): string;
export declare function formatFrameworkAudit(result: FrameworkAuditResult | PrioritizedAudit): string;
export declare function formatNextjsLinkIntegrity(result: LinkIntegrityResult): string;
export {};
//# sourceMappingURL=formatters.d.ts.map