import { RxCollection } from './rx-collection'; export declare class RxChangeEvent { constructor(data: any); } export function fromPouchChange(changeDoc: any, collection: RxCollection): RxChangeEvent export type RxChangeEventOperation = 'INSERT' | // document created 'UPDATE' | // document changed 'REMOVE' | // document removed 'RxDatabase.collection'; // collection created export type RemoveData = { _id: string, _rev: string, _deleted: true }; export type RxEventValueWithRevAndId = { _id: string; _rev: string; }; export type RxEventValue = RxDocumentType & RxEventValueWithRevAndId; export class RxChangeEventDataBase { readonly op: RxChangeEventOperation; readonly t: number; readonly db: string; readonly it: string; readonly isLocal: boolean; } export declare class RxChangeEventBase { isIntern(): boolean; isSocket(): boolean; readonly hash: string; } // INSERT export class RxChangeEventInsertData extends RxChangeEventDataBase { readonly op: 'INSERT'; readonly col: string; readonly doc: string; readonly v: RxEventValue; } export declare class RxChangeEventInsert extends RxChangeEventBase { readonly data: RxChangeEventInsertData; toJSON(): RxChangeEventInsertData; } // UPDATE export class RxChangeEventUpdateData extends RxChangeEventDataBase { readonly op: 'UPDATE'; readonly col: string; readonly doc: string; readonly v: RxEventValue; } export declare class RxChangeEventUpdate extends RxChangeEventBase { readonly data: RxChangeEventUpdateData; toJSON(): RxChangeEventUpdateData; } // REMOVE export class RxChangeEventRemoveData extends RxChangeEventDataBase { readonly op: 'REMOVE'; readonly col: string; readonly doc: string; readonly v: RxEventValue | RemoveData; } export declare class RxChangeEventRemove extends RxChangeEventBase { readonly data: RxChangeEventRemoveData; toJSON(): RxChangeEventRemoveData; } // COLLECTION export class RxChangeEventCollectionData extends RxChangeEventDataBase { readonly op: 'RxDatabase.collection'; } export declare class RxChangeEventCollection extends RxChangeEventBase { readonly data: RxChangeEventCollectionData; toJSON(): RxChangeEventCollectionData; }