import type { Tool, ToolResult } from './types.js';
type HarnessComponentId = 'system_prompts' | 'tooling' | 'middleware' | 'skills' | 'subagents' | 'memory' | 'providers' | 'benchmark_adapters' | 'cli_ui' | 'verification';
interface ComponentSpec {
    id: HarnessComponentId;
    title: string;
    role: string;
    patterns: string[];
    tests: string[];
    docs?: string[];
    editContract: string;
}
interface ComponentSummary {
    spec: ComponentSpec;
    files: string[];
    fileCount: number;
    tests: string[];
    testCount: number;
    docs: string[];
    docCount: number;
}
interface HarnessComponentsJsonReport {
    version: 1;
    format: 'grawkus-harness-components-v1';
    source: 'harness_components';
    root: string;
    package: string | null;
    summary: {
        totalComponents: number;
        shownComponents: number;
        matchedEditableFiles: number;
        matchedTestFiles: number;
        matchedDocFiles: number;
        componentIds: HarnessComponentId[];
    };
    discipline: string[];
    redaction: {
        secretsIncluded: false;
        memoryContentsIncluded: false;
        oracleContentsIncluded: false;
    };
    components: Array<{
        id: HarnessComponentId;
        title: string;
        role: string;
        editContract: string;
        patterns: string[];
        testPatterns: string[];
        docPatterns: string[];
        files: string[];
        fileCount: number;
        tests: string[];
        testCount: number;
        docs: string[];
        docCount: number;
    }>;
}
type HarnessComponentsFormat = 'text' | 'json';
export declare const HarnessComponentsTool: Tool;
export declare function buildHarnessComponentsReport(input: Record<string, unknown>, cwd: string): ToolResult;
declare function buildJsonReport(root: string, pkg: string | null, summaries: ComponentSummary[], matchedFiles: number, matchedTests: number, matchedDocs: number): HarnessComponentsJsonReport;
declare function matchExisting(root: string, patterns: string[]): string[];
declare function normalizeFormat(input: Record<string, unknown>): HarnessComponentsFormat | null;
export declare const _internal: {
    COMPONENTS: ComponentSpec[];
    buildHarnessComponentsReport: typeof buildHarnessComponentsReport;
    buildJsonReport: typeof buildJsonReport;
    matchExisting: typeof matchExisting;
    normalizeFormat: typeof normalizeFormat;
};
export {};
