import { AtUri } from '@atproto/syntax'; import { CID } from 'multiformats/cid'; import { Database } from '../db/index.js'; import { DatabaseSchema } from '../db/database-schema.js'; type RecordProcessorParams = { lexId: string; insertFn: (db: DatabaseSchema, uri: AtUri, cid: CID, obj: T, timestamp: string) => Promise; findDuplicate: (db: DatabaseSchema, uri: AtUri, obj: T) => Promise; deleteFn: (db: DatabaseSchema, uri: AtUri) => Promise; }; export declare class RecordProcessor { private params; collection: string; db: DatabaseSchema; constructor(appDb: Database, params: RecordProcessorParams); matchesSchema(obj: unknown): obj is T; assertValidRecord(obj: unknown): asserts obj is T; insertRecord(uri: AtUri, cid: CID, obj: unknown, timestamp: string): Promise; updateRecord(uri: AtUri, cid: CID, obj: unknown, timestamp: string): Promise; deleteRecord(uri: AtUri, cascading?: boolean): Promise; } export default RecordProcessor;