import { BrokerDB } from "./schema.js"; import { BrokerSocketServer } from "./socket-server.js"; import type { ListenTarget } from "./socket-server.js"; import { LeaderLock } from "./leader.js"; import type { MessageAdapter } from "./types.js"; export { BrokerDB } from "./schema.js"; export { BrokerSocketServer } from "./socket-server.js"; export { LeaderLock } from "./leader.js"; export type { ListenTarget } from "./socket-server.js"; export type { AgentMessageCallback, AgentRegistrationResolver } from "./socket-server.js"; export type { AgentInfo, ThreadInfo, ScheduledWakeupInfo, ScheduledWakeupDelivery, BrokerMessage, InboxEntry, InboundMessage, OutboundMessage, AdapterCapabilityRequest, AdapterCapabilityResult, MessageAdapter, JsonRpcRequest, JsonRpcResponse, TaskAssignmentInfo, TaskAssignmentStatus, } from "./types.js"; export interface BrokerOptions { dbPath?: string; /** Unix socket path (shorthand for { type: "unix", path }) */ socketPath?: string; /** Full listen target — overrides socketPath when provided */ listenTarget?: ListenTarget; lockPath?: string; meshSecret?: string; meshSecretPath?: string; } export interface Broker { db: BrokerDB; server: BrokerSocketServer; lock: LeaderLock; adapters: MessageAdapter[]; addAdapter(adapter: MessageAdapter): void; stop(): Promise; } /** * Start the broker: acquire leader lock, initialize SQLite, start the Unix socket server. * Only one broker may run at a time — enforced by a PID lock file. * * Throws if another broker process already holds the lock. */ export declare function startBroker(options?: BrokerOptions): Promise;