import type { AgentRun, AgentRunAttempt, AgentRunStep, AttemptId, HostStatus, PromptAssemblySnapshot, ProviderTurnTraceSnapshot, RoutingPressureSnapshot, RunId, ThreadDiagnostics, ThreadId, TurnId, WorkerLeaseStatus } from "@best-agent/protocol";
import type { ApprovalStore } from "../core/approval-store.js";
import type { RunCheckpoint, ThreadStore } from "../core/thread-store.js";
type DiagnosticsCollectorDeps = {
    approvalStore: ApprovalStore;
    buildRoutingPressureSnapshot(input: {
        attemptId?: AttemptId;
        childTaskFanout: number;
        createdAt: string;
        diagnostics: ThreadDiagnostics;
        runId?: RunId;
        threadId: ThreadId;
        turnId?: TurnId;
    }): RoutingPressureSnapshot;
    computeRunSuspectReason(run: AgentRun, latestAttempt?: AgentRunAttempt, checkpoint?: RunCheckpoint | null, workerLeases?: Array<{
        kind: string;
        status: WorkerLeaseStatus;
        updatedAt: string;
    }>): string | undefined;
    readHostStatus(): Promise<HostStatus>;
    readProfileAllowedTools(profileName: string): string[] | undefined;
    readPromptAssembly(threadId: ThreadId): PromptAssemblySnapshot | undefined;
    readProviderTurnTrace(threadId: ThreadId): ProviderTurnTraceSnapshot | undefined;
    readTranscriptStats(threadId: ThreadId): ThreadDiagnostics["transcript"];
    readWorkspaceDiagnostics(threadId: ThreadId): ThreadDiagnostics["workspace"];
    runStepFromCheckpoint(threadId: ThreadId, checkpoint: RunCheckpoint): AgentRunStep;
    store: ThreadStore;
};
export declare class DiagnosticsCollector {
    #private;
    constructor(deps: DiagnosticsCollectorDeps);
    decorateThreadDiagnostics(threadId: ThreadId, diagnostics: ThreadDiagnostics): Promise<ThreadDiagnostics>;
}
export {};
//# sourceMappingURL=diagnostics-collector.d.ts.map