/**
 * SessionId implementation for pi-cli.
 *
 * Pi assigns a session id to each session (the `sessionId` field in its RPC
 * `get_state` response and in its on-disk session file under `--session-dir`).
 * Pi session ids are UUIDv7 strings drawn from pi's session files. The
 * adapter's SessionHandle binds to that pi-side session id. This primitive
 * provides the binding both directions.
 *
 * Mirrors gemini-cli/observability/sessionId.ts: an in-memory bidirectional
 * map, populated when the adapter observes a session's id, plus a synthetic
 * handle for a known session id without a live process.
 */
import type { SessionHandle } from '../../../types.js';
import type { SessionId } from '../../../primitives/observability/sessionId.js';
/** Bind a pi session id (UUIDv7) to a SessionHandle. */
export declare function bindPiSessionId(handle: SessionHandle, sessionId: string): void;
/** Look up the SessionHandle for a pi session id (UUIDv7). */
export declare function handleForPiSession(sessionId: string): SessionHandle | null;
/** Construct a session handle for a known pi session without a live process. */
export declare function syntheticHandleForPiSession(sessionId: string): SessionHandle;
/** Construct a process-pid handle for a live one-shot spawn (used by HardKill). */
export declare function pidHandle(pid: number): SessionHandle;
export declare function createSessionId(): SessionId;
/** Test-only: clear the in-memory session-id binding maps. */
export declare function _resetPiSessionIdMaps(): void;
//# sourceMappingURL=sessionId.d.ts.map