export function createPersistence(postgresUrl: string, plugins: t.PersistencePlugin[]): Promise; /** * A Persistence implementation that persists documents in PostgreSQL. */ export class Persistence { /** * @param {postgres.Sql} sql * @param {t.PersistencePlugin[]} plugins */ constructor(sql: postgres.Sql, plugins: t.PersistencePlugin[]); sql: postgres.Sql; /** * @type {t.PersistencePlugin[]} */ plugins: t.PersistencePlugin[]; /** * @param {t.Room} room * @param {object} content * @param {string} content.lastClock * @param {Uint8Array} content.gcDoc * @param {Uint8Array} content.nongcDoc * @param {Uint8Array} content.contentmap * @param {Uint8Array} content.contentids * @returns {Promise} */ store(room: t.Room, { lastClock, gcDoc, nongcDoc, contentmap, contentids }: { lastClock: string; gcDoc: Uint8Array; nongcDoc: Uint8Array; contentmap: Uint8Array; contentids: Uint8Array; }): Promise; /** * @param {t.Room} room * @return {Promise} */ retrieveContentmap(room: t.Room): Promise; /** * @template {{ gc?: boolean, nongc?: boolean, contentmap?: boolean, references?: boolean, contentids?: boolean }} Include * @param {t.Room} room * @param {Include} includeContent * @return {Promise<{ lastClock: string, gcDoc: Include['gc'] extends true ? Array> : null, nongcDoc: Include['nongc'] extends true ? Array> : null, contentmap: Include['contentmap'] extends true ? Array> : null, references: Include['references'] extends true ? Array<{ assetId: t.AssetId, asset: t.Asset }> : null, contentids: Include['contentids'] extends true ? Array> : null }>} */ retrieveDoc(room: t.Room, includeContent: Include): Promise<{ lastClock: string; gcDoc: Include["gc"] extends true ? Array> : null; nongcDoc: Include["nongc"] extends true ? Array> : null; contentmap: Include["contentmap"] extends true ? Array> : null; references: Include["references"] extends true ? Array<{ assetId: t.AssetId; asset: t.Asset; }> : null; contentids: Include["contentids"] extends true ? Array> : null; }>; /** * @param {Array<{ assetId: t.AssetId, asset: t.Asset }>} references * @return {Promise} */ deleteReferences(references: Array<{ assetId: t.AssetId; asset: t.Asset; }>): Promise; destroy(): Promise; } import * as t from './types.js'; import postgres from 'postgres'; import * as Y from '@y/y'; //# sourceMappingURL=persistence.d.ts.map