import type { CliAdapter } from './types.js';
/** Relay CLI (`@bytedance-relay/claude-code`, binary `relay`) is the current
 *  release name of what used to ship as Seed — a ByteDance fork of Claude Code.
 *  It is identical to Claude Code in flags, slash commands and on-disk session
 *  layout (per-project JSONL transcripts, `sessions/<pid>.json`, `tasks/` fd
 *  locks, keybindings.json, settings.json hooks); it differs only in the binary
 *  name, its auth (ByteCloud / bytedcli / SuperRelay), and its data root — which
 *  it isolates to a `.claude-runtime` directory *inside its own install package*
 *  (rather than `~/.claude`), respecting `CLAUDE_CONFIG_DIR` when set.
 *
 *  Relay and Seed share the same package internals, so this adapter is a near
 *  clone of `seed.ts`; it lives as its own file (and CliId) because they are
 *  distinct binaries with distinct npm packages — a user may have either one,
 *  or both, on PATH, and botmux must spawn/resume each by its real name. */
/** Derive Relay's `.claude-runtime` data root from the resolved binary.
 *
 *  `which relay` returns an ephemeral fnm/nvm shim (e.g.
 *  `/run/user/.../fnm_multishells/<pid>_.../bin/relay`); realpath follows the
 *  symlink chain to the package's `dist/cli.js`, whose package root is two
 *  levels up. `.claude-runtime` sits at that package root. Deriving from the
 *  binary on every spawn means a node/fnm switch (which moves the binary)
 *  auto-tracks to the matching runtime dir — and it equals the path a bare
 *  `relay` uses by default, so botmux-spawned and hand-started Relay sessions
 *  share one config (settings, history, cross-resume).
 *
 *  Falls back to `~/.claude-runtime` only if realpath fails (unusual install
 *  layout) — Relay still runs, but the JSONL bridge may target the wrong dir;
 *  we log so it's diagnosable rather than silently degraded. */
export declare function deriveRelayDataDir(bin: string): string;
export declare function createRelayAdapter(pathOverride?: string): CliAdapter;
export declare const create: typeof createRelayAdapter;
//# sourceMappingURL=relay.d.ts.map