declare module '@rikishi/watermelondb/Collection' { import { Database, Model, Query, RecordId, TableName, TableSchema } from '@rikishi/watermelondb' import { Clause } from '@rikishi/watermelondb/QueryDescription' import { Class } from '@rikishi/watermelondb/utils/common' import { Observable, Subject } from 'rxjs' type CollectionChangeType = 'created' | 'updated' | 'destroyed' export interface CollectionChange { record: Record type: CollectionChangeType } export type CollectionChangeSet = CollectionChange[] export default class Collection { public database: Database public modelClass: Class public changes: Subject> public table: TableName public schema: TableSchema public constructor(database: Database, ModelClass: Class) public find(id: RecordId): Promise public findAndObserve(id: RecordId): Observable public query(...conditions: Clause[]): Query public unsafeFetchRecordsWithSQL(sql: string): Promise public create(recordBuilder?: (record: Record) => void): Promise public prepareCreate(recordBuilder?: (record: Record) => void): Record } }