import { CliExecResult } from "../types.js";
export type Platform = "cc" | "codex" | "slack" | "gchat" | "web";
/**
 * Dispatch a non-interactive "resume + send" to the local agent CLI based on
 * the local peer's platform. Only "codex" diverges; everything else (and the
 * non-CLI platforms, which never reach auto-relay) uses the Claude path.
 */
export declare function execRemote(platform: Platform, sessionId: string, message: string, cwd: string, timeoutMs?: number, opts?: {
    idempotencyKey?: string;
}): Promise<CliExecResult>;
/** Platform-aware "find the current session id for this cwd". */
export declare function detectCurrentSessionFor(platform: Platform, cwd: string): Promise<string | null>;
/** Platform-aware "list all candidate sessions for this cwd" (name + mtime). */
export declare function listCandidatesFor(platform: Platform, cwd: string): Promise<{
    sessionId: string;
    mtimeMs: number;
}[]>;
/**
 * Platform-aware "which session did this cwd's agent report for ITSELF".
 *
 * Layer 1 of session discovery: a fact published by the agent (via the plugin
 * hook payload) rather than a path we derived. Only Claude Code publishes a
 * transcript path today; Codex already matches its rollouts by recorded cwd, so
 * it has no derivation to bypass. Returns null when nothing was recorded.
 */
export declare function reportedSessionFor(platform: Platform, cwd: string): Promise<string | null>;
/**
 * Platform-aware "which directories would I scan for this cwd's sessions".
 *
 * Diagnostics only. A zero-candidate resolve used to be a dead end: the log said
 * "no candidate sessions found for cwd" without ever naming the directory it
 * looked in, so a cwd-representation mismatch and a genuinely empty machine were
 * indistinguishable. Surfacing the probed path turns that into a one-glance fix.
 */
export declare function probePathsFor(platform: Platform, cwd: string): Promise<string[]>;
/** Platform-aware "does this session id still exist on disk". */
export declare function validateSessionFor(platform: Platform, sessionId: string, cwd: string): Promise<boolean>;
//# sourceMappingURL=exec-remote.d.ts.map