/**
 * chat-daemon RPC client (v0.7.1 Phase B).
 *
 * Used by the MCP server when it wants to send a chat message but
 * doesn't want to start its own long-poll adapter (which would
 * collide with any other MCP server holding the same bot token).
 *
 * Behavior:
 *   - One short-lived connection per request — keeps the implementation
 *     trivial and avoids reconnect/backoff logic. Performance is fine
 *     for v0.7.1's expected traffic (a handful of agent reports per
 *     project session).
 *   - Returns a typed result on success.
 *   - Throws `DaemonUnreachableError` when the socket can't be reached
 *     so callers can fall back to in-process send.
 *   - Throws `DaemonRpcError` on JSON-RPC error responses.
 */
import { type CreateTopicParams, type CreateTopicResult, type ListChannelsResult, type PingResult, type SendParams, type SendResult } from "./protocol.js";
export declare class DaemonUnreachableError extends Error {
    constructor(message: string);
}
export declare class DaemonRpcError extends Error {
    readonly code: number;
    constructor(message: string, code: number);
}
export interface RpcClientOptions {
    dataRoot?: string;
    /** Connect timeout in ms. Default 1500 — local socket, fast. */
    connectTimeoutMs?: number;
    /** Request timeout in ms (waiting for response). Default 5000. */
    requestTimeoutMs?: number;
}
export declare class DaemonClient {
    private readonly address;
    private readonly connectTimeoutMs;
    private readonly requestTimeoutMs;
    constructor(opts?: RpcClientOptions);
    ping(): Promise<PingResult>;
    listChannels(): Promise<ListChannelsResult>;
    send(params: SendParams): Promise<SendResult>;
    createTopic(params: CreateTopicParams): Promise<CreateTopicResult>;
    call<R>(method: string, params: unknown): Promise<R>;
    private openSocket;
}
//# sourceMappingURL=rpc-client.d.ts.map