import { r as AcpSession } from "../types-Cx-scs5J.js";
//#region packages/acp-core/src/session.d.ts
export type AcpSessionStore = {
  /** Creates or refreshes an in-memory ACP session under the supplied session id. */
  createSession: (params: {
    sessionKey: string;
    cwd: string;
    sessionId?: string;
    ledgerSessionId?: string;
  }) => AcpSession;
  hasSession: (sessionId: string) => boolean;
  getSession: (sessionId: string) => AcpSession | undefined;
  getSessionByRunId: (runId: string) => AcpSession | undefined;
  /** Binds an active runtime run to a session so cancel/close can abort it later. */
  setActiveRun: (sessionId: string, runId: string, abortController: AbortController) => void;
  clearActiveRun: (sessionId: string, expectedRunId?: string) => void;
  cancelActiveRun: (sessionId: string, expectedRunId?: string) => boolean;
  deleteSession: (sessionId: string) => boolean;
};
type InMemoryAcpSessionStore = AcpSessionStore & {
  /** Releases every record when the registry's lifecycle owner shuts down. */
  dispose: () => void;
};
type AcpSessionStoreOptions = {
  maxSessions?: number;
  idleTtlMs?: number;
  now?: () => number;
};
/** Creates the bounded in-memory ACP session registry used by local ACP runtime clients. */
export declare function createInMemorySessionStore(options?: AcpSessionStoreOptions): InMemoryAcpSessionStore;
//#endregion