/**
 * Local machine registry and topology diagnostics — multi-machine agent workflows.
 * No hosted/cloud calls.
 */
import type { Database } from "bun:sqlite";
import type { Machine } from "../types/index.js";
export declare const MACHINE_TOPOLOGY_SCHEMA = "todos.machine_topology.v1";
export interface MachinePathOverride {
    project_id: string;
    project_name: string;
    machine_id: string;
    path: string;
    path_normalized: string;
    casing_mismatch: boolean;
}
export interface MachineAgentSummary {
    agent_id: string;
    agent_name: string;
    machine_id: string | null;
    last_seen_at: string;
    stale: boolean;
}
export interface MachineTopologyNode {
    schema_version: typeof MACHINE_TOPOLOGY_SCHEMA;
    id: string;
    name: string;
    hostname: string;
    platform: string;
    last_seen_at: string;
    is_local: boolean;
    active_agents: number;
    stale_locks: number;
    path_overrides: number;
}
export interface MachineTopologyReport {
    schema_version: typeof MACHINE_TOPOLOGY_SCHEMA;
    generated_at: string;
    local_machine_id: string;
    local_hostname: string;
    workspace_cwd: string;
    machines: MachineTopologyNode[];
    path_overrides: MachinePathOverride[];
    agents: MachineAgentSummary[];
    stale_tasks: Array<{
        id: string;
        title: string;
        locked_by: string | null;
        locked_at: string | null;
    }>;
    diagnostics: string[];
    sync_health: "ok" | "warn" | "degraded";
}
export declare function registerLocalMachine(db?: Database): Machine;
export declare function getPathOverrides(db?: Database): MachinePathOverride[];
export declare function getMachineAgentSummaries(db?: Database): MachineAgentSummary[];
export declare function buildMachineTopologyReport(db?: Database): MachineTopologyReport;
export declare function getReachableHostnames(): string[];
export declare function getTopologyDocs(): string;
//# sourceMappingURL=machine-topology.d.ts.map