import type { Database } from "bun:sqlite";
export interface Handoff {
    id: string;
    agent_id: string | null;
    project_id: string | null;
    session_id: string | null;
    summary: string;
    completed: string[] | null;
    in_progress: string[] | null;
    blockers: string[] | null;
    next_steps: string[] | null;
    task_ids: string[] | null;
    relevant_files: string[] | null;
    run_ids: string[] | null;
    created_at: string;
    acknowledged_by: string[];
}
export interface CreateHandoffInput {
    agent_id?: string;
    project_id?: string;
    session_id?: string;
    summary: string;
    completed?: string[];
    in_progress?: string[];
    blockers?: string[];
    next_steps?: string[];
    task_ids?: string[];
    relevant_files?: string[];
    run_ids?: string[];
}
export interface ListHandoffsOptions {
    project_id?: string;
    agent_id?: string;
    unread_for?: string;
    limit?: number;
}
export interface CreateSessionRecoveryHandoffInput {
    agent_id: string;
    session_id?: string;
    project_id?: string;
    recovered_by?: string;
    reason?: string;
    limit?: number;
}
export interface HandoffBundle {
    schemaVersion: 1;
    kind: "hasna.todos.handoff";
    exported_at: string;
    handoff: Handoff;
    references: {
        tasks: Array<Record<string, unknown>>;
        files: Array<Record<string, unknown>>;
        runs: Array<Record<string, unknown>>;
        verifications: Array<Record<string, unknown>>;
        commits: Array<Record<string, unknown>>;
    };
}
export interface ImportHandoffBundleResult {
    applied: boolean;
    created: boolean;
    existing: boolean;
    handoff_id: string;
    summary: string;
    warnings: string[];
}
export declare function createHandoff(input: CreateHandoffInput, db?: Database): Handoff;
export declare function exportHandoffBundle(id: string, db?: Database, exportedAt?: Date): HandoffBundle;
export declare function importHandoffBundle(bundle: HandoffBundle, options?: {
    apply?: boolean;
}, db?: Database): ImportHandoffBundleResult;
export declare function listHandoffs(projectIdOrOptions?: string | ListHandoffsOptions, limitOrDb?: number | Database, maybeDb?: Database): Handoff[];
export declare function getHandoff(id: string, db?: Database): Handoff | null;
export declare function acknowledgeHandoff(id: string, agentId: string, db?: Database): Handoff;
export declare function getLatestHandoff(agentId?: string, projectId?: string, db?: Database): Handoff | null;
export declare function createSessionRecoveryHandoff(input: CreateSessionRecoveryHandoffInput, db?: Database): Handoff;
//# sourceMappingURL=handoffs.d.ts.map