export interface ReplicationStream { pipe(destination: ReplicationStream): ReplicationStream; destroy(): void; } export interface Hypercore { readonly key: Uint8Array; replicate(isInitiator: boolean): ReplicationStream; } export interface Corestore { ready(): Promise; get(options: { name: string; }): Hypercore; close(): Promise; } export interface HyperDBReader { get(collection: string, query: object): Promise; find(collection: string, query?: object): { toArray(): Promise; }; findOne(index: string, query: object): Promise; close(): Promise; } export interface HyperDBTransaction extends HyperDBReader { insert(collection: string, record: object): Promise; delete(collection: string, query: object): Promise; flush(): Promise; close(): Promise; } export interface HyperDBInstance { readonly core: Hypercore; ready(): Promise; close(): Promise; snapshot(): HyperDBReader; exclusiveTransaction(): Promise; }