import { SessionRouter } from "../router"; export type SdkSessionCliAction = "list" | "inspect" | "send" | "status" | "tail" | "raw" | "control" | "query" | "global"; export type SdkSessionCliRawKind = "control" | "query" | "global"; export interface SdkSessionCliArgs { action?: string; rawAction?: string; sessionId?: string; opRef?: string; operation?: string; query?: string; text?: string; jsonInput?: string; jsonInputFile?: string; jsonInputStdin?: boolean; idempotencyKey?: string; confirm?: boolean; cursor?: string; wait?: boolean; timeoutMs?: number; strict?: boolean; untilIdle?: boolean; allEvents?: boolean; repo?: string; agentDir?: string; } export interface RetainedTranscriptTailReader { readonly size: number; readRange(start: number, end: number): Promise; } /** Creates a lowercase ULID operation reference for prompt reconciliation. */ export declare function createOperationRef(now?: number): string; /** Exported for tests: each status poll must stay inside the caller's wait window. */ export declare function waitForTerminalStatus(router: SessionRouter, sessionId: string, clientRef: string, timeoutMs: number | undefined): Promise<{ terminal: boolean; status: string; detail: unknown; }>; export declare function scanRetainedTranscriptTail(reader: RetainedTranscriptTailReader): Promise; export declare function runTail(repo: string, agentDir: string, sessionId: string, args: SdkSessionCliArgs): Promise; /** Runs the broker-bound `gjc sdk session` command family without exposing endpoint credentials. */ export declare function runSdkSessionCli(args: SdkSessionCliArgs, writeOutput?: (value: unknown) => void, setExitCode?: (exitCode: 1 | 2) => void): Promise;