import { type AgentRecord, type CreateChildAgentRecordInput, type CreateGuestAgentRecordInput } from "./types.js";
export declare class AgentRegistry {
    private readonly cwd;
    private readonly path;
    private readonly agents;
    private constructor();
    static open(cwd: string): AgentRegistry;
    getAll(): AgentRecord[];
    get(agentId: string): AgentRecord | undefined;
    require(agentId: string): AgentRecord;
    /**
     * Like `createChild`, but the session file path is always `<hubWorkspace>/agents/<id>.jsonl` after
     * a unique child id is allocated. Callers that need a stable path before creating the file should use this.
     */
    createChildResolvingSessionPath(input: Omit<CreateChildAgentRecordInput, "sessionFile">): AgentRecord;
    createGuestResolvingSessionPath(input: Omit<CreateGuestAgentRecordInput, "sessionFile">): AgentRecord;
    createChild(input: CreateChildAgentRecordInput): AgentRecord;
    createGuest(input: CreateGuestAgentRecordInput): AgentRecord;
    update(record: AgentRecord): void;
    resolveNewChildAgentId(rawAgentId: string): string;
    renameChild(agentId: string, newAgentId: string): AgentRecord;
    removeChild(agentId: string): AgentRecord;
    getChildren(parentId: string): AgentRecord[];
    getDescendantIds(agentId: string): string[];
    isInSubtree(scopeRootAgentId: string, targetAgentId: string): boolean;
    save(): void;
}
//# sourceMappingURL=agent-registry.d.ts.map