export type ThreatDiscoveryJobKind = 'threat-lab' | 'auto-research';
export interface ThreatDiscoveryJobStatus {
    jobId: string;
    kind: ThreatDiscoveryJobKind;
    tenantId: string;
    state: 'idle' | 'running' | 'done' | 'failed';
    phase: string;
    phaseLabel: string;
    progressPct: number;
    startedAt: string | null;
    finishedAt: string | null;
    exitCode: number | null;
    error: string | null;
    logTail: string;
    pid: number | null;
}
export declare function getThreatDiscoveryJobStatus(tenantId: string | undefined, kind: ThreatDiscoveryJobKind): ThreatDiscoveryJobStatus;
export declare function isThreatDiscoveryJobRunning(tenantId: string, kind: ThreatDiscoveryJobKind): boolean;
declare function spawnDiscoveryJob(tenantId: string, kind: ThreatDiscoveryJobKind, extraEnv: Record<string, string>): {
    ok: boolean;
    jobId?: string;
    startedAt?: string;
    error?: string;
    status?: number;
};
export declare function startThreatLabJob(tenantId?: string, opts?: {
    mode?: 'reactive' | 'proactive';
}): ReturnType<typeof spawnDiscoveryJob>;
export declare function startAutoThreatResearchJob(tenantId?: string): ReturnType<typeof spawnDiscoveryJob>;
/** Test helper — reset watcher state. */
export declare function resetThreatDiscoveryRunnerForTests(): void;
export {};
//# sourceMappingURL=threat-discovery-runner.d.ts.map