/**
 * hosting/memorySessions — conversations in a Map.
 *
 * The smallest thing that satisfies `SessionLifecycle`, for tests and for local
 * development where a Redis is ceremony you have not earned yet. It is exactly
 * as durable as the process: restart and every conversation is gone.
 *
 * That is not a shortcoming to apologise for, it is the point of the port. Swap
 * this for a store that survives a restart and the standing agent is unchanged
 * — which is also how the "a crashed process resumes the conversation" test is
 * written: keep the store, throw away everything else, and watch the
 * conversation come back through the envelope alone.
 *
 * The next step up ships beside this one: `sqliteSessions({ file })` is the same
 * port in a file, with nothing to install.
 *
 * ── The owner index (9.26.0) ────────────────────────────────────────────────
 * It also implements the two OPTIONAL members `listByUser` / `ownerOf`, which
 * is what lets a host answer `{ op: 'session-list' }` for a verified caller.
 * The owner is DERIVED at persist time from the stored conversation's own
 * `identity.principal` (`envelopeOwner`) — never declared by a caller, because
 * a store that let you state an owner is a store where owning somebody's
 * session is a matter of asking. A conversation that ran anonymously has no
 * owner and appears in nobody's list.
 *
 * Since 9.36.1 the owner rule is not written out here at all: it is
 * `resolveSessionOwner`, shared with every other store, because four stores
 * each spelling the same rule in their own dialect is how all four came to be
 * missing the same half of it.
 */
import type { SessionLifecycle } from './types.js';
/**
 * An in-process session store.
 *
 * @example
 *   const sessions = memorySessions();
 *   await standingAgent({ agent, sessions, host: nodeHost({ port: 8080 }) });
 */
export declare function memorySessions(): SessionLifecycle;
//# sourceMappingURL=memorySessions.d.ts.map