import type { AuditListOptions, ConversationAuditEntry } from '../audit/types.js'; import type { ConversationOutcome, ConversationOutcomeMarkedBy } from '../outcomes/types.js'; import type { Session } from '../types/session.js'; import type { SessionStore } from '../session/SessionStore.js'; import type { TurnHandle } from '../types/stream.js'; import type { RunHandle, RunOptions } from './Runtime.js'; export interface RuntimeLike { run(opts: RunOptions): TurnHandle; stream(opts: RunOptions): TurnHandle; getSession(sessionId: string): Promise; getSessionStore(): SessionStore; deleteSession(sessionId: string): Promise; abortSession(sessionId: string, reason?: string): void; replayAuditLog(sessionId: string, opts?: AuditListOptions): Promise; markOutcome(sessionId: string, outcome: ConversationOutcome, opts?: { reason?: string; markedBy?: ConversationOutcomeMarkedBy; }): Promise; getRun?(runId: string, sessionId?: string): Promise; getConversationLength?(sessionId: string): Promise; compressNow?(sessionId: string, opts?: { focusTopic?: string; force?: boolean; }): Promise>; }