export declare const ROOT_AGENT_ID = "root";
/** @deprecated Use ROOT_AGENT_ID. Kept only for transitional imports. */
export declare const MAIN_AGENT_ID = "root";
export type AgentKind = "root" | "child" | "guest";
export type AgentSpawnMode = "fork" | "spawn";
export type AgentLifecycle = "persistent" | "temporary";
export type HubExecutorPolicy = "enabled" | "disabled";
export interface NodeContainerExecutorConfig {
    id: string;
    type: "node-container";
    peerId: string;
    image: string;
    command: string[];
    token: string;
    env?: Record<string, string>;
    workdir?: string;
    containerName?: string;
}
export type AgentExecutorConfig = NodeContainerExecutorConfig;
export interface AgentModelRef {
    provider: string;
    modelId: string;
}
export interface AgentRecord {
    id: string;
    kind: AgentKind;
    parentId?: string;
    name?: string;
    description?: string;
    sessionFile: string;
    createdAt: string;
    createdBy?: string;
    spawnMode?: AgentSpawnMode;
    background?: string;
    lifecycle: AgentLifecycle;
    reportResult?: boolean;
    hubExecutor?: HubExecutorPolicy;
    executors?: AgentExecutorConfig[];
    model?: AgentModelRef;
}
export interface AgentRegistryFile {
    version: 2;
    agents: AgentRecord[];
}
export interface CreateChildAgentRecordInput {
    id?: string;
    parentId: string;
    name?: string;
    description?: string;
    sessionFile: string;
    createdBy?: string;
    spawnMode?: AgentSpawnMode;
    background?: string;
    lifecycle?: AgentLifecycle;
    reportResult?: boolean;
    hubExecutor?: HubExecutorPolicy;
    executors?: AgentExecutorConfig[];
    model?: AgentModelRef;
}
export interface CreateGuestAgentRecordInput {
    id?: string;
    parentId: string;
    name?: string;
    description?: string;
    sessionFile: string;
    createdBy?: string;
    lifecycle?: AgentLifecycle;
}
//# sourceMappingURL=types.d.ts.map