/**
 * Machine-level Agent Registry
 *
 * Tracks all agents across all projects in a single SQLite database
 * at ~/.prlt/agents.db. This provides a global view of agent activity
 * regardless of which workspace they belong to.
 */
import Database from 'better-sqlite3';
export type MachineAgentStatus = 'running' | 'idle' | 'completed';
export interface MachineAgent {
    agentName: string;
    projectPath: string;
    sessionId: string | null;
    ticketId: string | null;
    status: MachineAgentStatus;
    spawnedAt: string;
    lastSeenAt: string;
}
/**
 * Open (or create) the machine-level agent registry at ~/.prlt/agents.db.
 * Ensures the ~/.prlt directory and schema exist.
 */
export declare function openMachineRegistry(): Database.Database;
/**
 * Register an agent spawn in the machine registry.
 * Uses INSERT OR REPLACE so re-spawning the same agent updates the record.
 */
export declare function registerAgent(params: {
    agentName: string;
    projectPath: string;
    sessionId?: string;
    ticketId?: string;
}): void;
/**
 * Update the status of an agent in the machine registry.
 */
export declare function updateAgentStatus(agentName: string, projectPath: string, status: MachineAgentStatus): void;
/**
 * Touch the last_seen_at timestamp for a running agent.
 */
export declare function touchAgentLastSeen(agentName: string, projectPath: string): void;
/**
 * Get all agents in the machine registry, optionally filtered.
 */
export declare function getMachineAgents(filters?: {
    status?: MachineAgentStatus;
    projectPath?: string;
}): MachineAgent[];
/**
 * Get a single agent by name and project path.
 */
export declare function getMachineAgent(agentName: string, projectPath: string): MachineAgent | undefined;
