/** * In-memory {@link BoardStore} reference (ยง12.3). * * The claim path is the interesting one: because JavaScript resolves each * `await` boundary atomically here, N concurrent `claim` calls serialize and * exactly one finds `assignee === undefined`. A SQL composition gets the same * outcome from a conditional `UPDATE ... WHERE assignee IS NULL`; the * conformance suite asserts the outcome, not the mechanism. * * `boardSeq` is per tenant and bumps on every mutation, which is what makes * `list({ afterSeq })` an incremental feed that cannot leak another tenant's * write rate. */ import { type BoardClaimInput, type BoardItem, type BoardItemInput, type BoardListQuery, type BoardPage, type BoardStatusUpdateInput, type BoardStore, type BoardUnclaimInput } from '../board'; import type { Clock } from '../stores'; import { type TenantId } from '../tenant'; export declare class InMemoryBoardStore implements BoardStore { #private; constructor(clock: Clock); create(tenant: TenantId, input: BoardItemInput): Promise; get(tenant: TenantId, itemId: string): Promise; list(tenant: TenantId, query: BoardListQuery): Promise; claim(tenant: TenantId, input: BoardClaimInput): Promise; unclaim(tenant: TenantId, input: BoardUnclaimInput): Promise; updateStatus(tenant: TenantId, input: BoardStatusUpdateInput): Promise; }