import { type BackendAgentRuntimeKind, type RuntimeSelection } from '../../agentRuntime/runtimeSelection';
import type { CaptureToolResolution } from '../types';
export interface RuntimeGuardResult {
    selection: RuntimeSelection;
    diagnostics: any;
}
export interface RuntimeGuardOptions {
    providerId?: string | null;
    runtimeOverride?: BackendAgentRuntimeKind;
}
export declare function assertAnalysisRuntimeReady(options?: RuntimeGuardOptions): RuntimeGuardResult;
export interface DoctorCheck {
    name: string;
    ok: boolean;
    status: 'ok' | 'warn' | 'error';
    message: string;
    details?: Record<string, unknown>;
}
export interface DoctorReport {
    ok: boolean;
    generatedAt: string;
    node: {
        version: string;
        expected: string;
        ok: boolean;
    };
    cliHome: string;
    runtime: RuntimeSelection;
    runtimeDiagnostics: any;
    traceProcessor: {
        path: string;
        exists: boolean;
        executable: boolean;
    };
    captureTools: {
        adb: CaptureToolResolution;
        tracebox: CaptureToolResolution;
        devices: {
            count: number;
            readyCount: number;
            serials: string[];
        };
    };
    providers: {
        count: number;
        active?: {
            id: string;
            name: string;
            type: string;
        };
    };
    checks: DoctorCheck[];
}
export declare function collectDoctorReport(cliHome: string): DoctorReport;
export declare function isClaudeSdkBinaryUsable(sdkBinary: any): boolean;
//# sourceMappingURL=runtimeGuard.d.ts.map