import type { Database } from "bun:sqlite";
import { type VerificationProviderConfig, type VerificationProviderKind, type VerificationProviderRetryConfig } from "./config.js";
export type { VerificationProviderConfig, VerificationProviderKind, VerificationProviderRetryConfig };
export type VerificationProviderStatus = "passed" | "failed" | "unknown";
export interface UpsertVerificationProviderInput {
    name: string;
    kind: VerificationProviderKind;
    command?: string;
    cwd?: string;
    env?: Record<string, string>;
    capabilities?: string[];
    retry?: VerificationProviderRetryConfig;
    timeout_ms?: number;
}
export interface VerificationProviderCapabilities {
    name: string;
    kind: VerificationProviderKind;
    configured: boolean;
    local_only: true;
    network_required: false;
    capabilities: string[];
    retry: Required<VerificationProviderRetryConfig>;
}
export interface RunVerificationProviderInput {
    name: string;
    task_id?: string;
    agent_id?: string;
    command?: string;
    cwd?: string;
    env?: Record<string, string>;
    log_text?: string;
    log_path?: string;
    url?: string;
    artifact_path?: string;
    metadata?: Record<string, unknown>;
}
export interface VerificationProviderResult {
    provider: string;
    kind: VerificationProviderKind;
    status: VerificationProviderStatus;
    command: string;
    attempts: number;
    exit_code: number | null;
    output_summary: string | null;
    artifact_path: string | null;
    run_at: string;
    task_id: string | null;
    metadata: Record<string, unknown>;
}
export declare function upsertVerificationProvider(input: UpsertVerificationProviderInput): VerificationProviderConfig;
export declare function listVerificationProviders(): VerificationProviderConfig[];
export declare function removeVerificationProvider(name: string): boolean;
export declare function discoverVerificationProviderCapabilities(name: string): VerificationProviderCapabilities;
export declare function runVerificationProvider(input: RunVerificationProviderInput, db?: Database): Promise<VerificationProviderResult>;
export interface VerificationRecordResult {
    id: string;
    task_id: string | null;
    command: string;
    status: VerificationProviderStatus;
    output_summary: string | null;
    artifact_path: string | null;
    agent_id: string | null;
    run_at: string;
    created_at: string;
    evidence: Record<string, unknown>;
}
export declare function getVerificationRecord(id: string, db?: Database): VerificationRecordResult | null;
export declare function listVerificationRecords(filter?: {
    task_id?: string;
    agent_id?: string;
    status?: string;
    run_record_id?: string;
    provider?: string;
    limit?: number;
}, db?: Database): VerificationRecordResult[];
//# sourceMappingURL=verification-providers.d.ts.map