import { Row } from "../storage.mjs"; import { IcebergTableName } from "../iceberg/schema.mjs"; import { Sink, SinkSlice } from "../sink.mjs"; /** A row as stored by the fake — data columns plus the injected identity columns. */ type StoredRow = Row & { site_id: string; search_type: string; }; interface InMemorySink extends Sink { /** All rows accepted, in partition order. */ readonly rows: readonly StoredRow[]; /** Rows for one table. */ rowsFor: (table: IcebergTableName) => StoredRow[]; /** Rows for one exact slice partition. */ rowsForSlice: (slice: SinkSlice) => StoredRow[]; /** `true` once `close()` has run. */ readonly closed: boolean; /** Drop everything — handy between test cases. */ reset: () => void; } /** * Create an in-memory append-only `Sink`. */ declare function createInMemorySink(): InMemorySink; export { InMemorySink, StoredRow, createInMemorySink };