import type { MessageId, SessionId } from '../../types/ids/index.js'; import { type MessageFeedback, type MessageFeedbackStore, type PutMessageFeedbackInput } from './types.js'; /** * Feedback held in one process, for tests and for a host that does not want * a file. * * Shares its compare-and-set and its validation with the disk store by * running the same conformance suite rather than by sharing code — the two * built-in checkpoint stores diverged at exactly their enforcement point * once already, and the one documented as the reference carried the defect. */ /** * `hasMessage`: whether a session's log holds a message. Injected, never * inferred — answered by the session index or by the log's fold. */ export type MessageExistenceCheck = (sessionId: SessionId, messageId: MessageId) => Promise; /** * Accepts every message id. * * The default for a store with no session log to consult, and it is named so a * reader sees the hole rather than discovering it. A host wiring this to a * real runtime passes the disk check; a test that is not about validation * takes this and says so by taking it. */ export declare const acceptAnyMessage: MessageExistenceCheck; export declare class InMemoryMessageFeedbackStore implements MessageFeedbackStore { private readonly messageExists; private readonly now; private readonly records; constructor(messageExists?: MessageExistenceCheck, now?: () => number); putMessageFeedback(input: PutMessageFeedbackInput): Promise; listMessageFeedback(query: { sessionId: SessionId; }): Promise; } //# sourceMappingURL=memory.d.ts.map