/**
 * InMemoryThreadStore — reference in-memory implementation of
 * {@link ThreadStore}.
 *
 * Mirrors the write-time CAS contract of the disk store: every
 * `updateThread` compares the supplied `ownerVersion` against the persisted
 * copy and rejects with `StaleThreadError` on mismatch. Convention #17:
 * cross-tenant access throws `TenantIsolationError` with no fallback.
 */
import type { TenantId } from '../../types/ids/index.js';
import type { ProjectId, ThreadId } from '../../types/session/ids.js';
import type { Thread } from '../../types/thread/entity.js';
import type { CreateThreadParams, ThreadStore } from '../../types/thread/store.js';
export declare class InMemoryThreadStore implements ThreadStore {
    private readonly threads;
    createThread(params: CreateThreadParams, tenantId: TenantId): Promise<Thread>;
    getThread(threadId: ThreadId, tenantId: TenantId): Promise<Thread | null>;
    updateThread(thread: Thread, tenantId: TenantId): Promise<void>;
    deleteThread(threadId: ThreadId, tenantId: TenantId): Promise<void>;
    listThreads(projectId: ProjectId, tenantId: TenantId): Promise<readonly Thread[]>;
    private assertTenant;
}
//# sourceMappingURL=memory.d.ts.map