import AxiomObject from "./AxiomObject"; import Channel from "./Channel"; import KeyPair from "./KeyPair"; import Message from "./Message"; import Node from "./Node"; import Peer from "./Peer"; import SignedMessage from "./SignedMessage"; interface Query { selector: object; } declare type DatabaseCallback = (sm: SignedMessage) => void; export default class Database { static adapter: any; channel: Channel; name: string; node: Node; keyPair: KeyPair; db: any; filterer: (obj: AxiomObject) => boolean; verbose: boolean; callbacks: DatabaseCallback[]; dataset: Message | null; onLoad: ((sms: SignedMessage[]) => void)[] | null; constructor(name: string, channel: Channel, node?: Node, prefix?: string); wrap(p: Promise): Promise; log(...args: any[]): void; setFilter(filterer: (obj: AxiomObject) => boolean): void; applyFilter(filterer: (obj: AxiomObject) => boolean): Promise; useFilter(filterer: (obj: AxiomObject) => boolean): Promise; statusLine(): Promise; allSignedMessages(): Promise; onMessage(callback: DatabaseCallback): Promise; handleDatabaseWrite(sm: SignedMessage, batch: boolean): Promise; handleDataset(peer: Peer, sm: SignedMessage): Promise; handleSignedMessage(peer: Peer, sm: SignedMessage): Promise; signedMessageToDocument(sm: SignedMessage): any; signedMessageToObject(sm: SignedMessage): AxiomObject; documentToSignedMessage(doc: any): SignedMessage; documentToObject(doc: any): AxiomObject; handleNewPeer(peer: Peer): Promise; responseForQuery(m: Message): Promise; handleQuery(peer: Peer, m: Message): Promise; create(data: any, name?: string): Promise; update(name: string, data: any): Promise; getDocument(owner: string, name: string): Promise; forget(owner: string, name: string): Promise; clear(): Promise; delete(name: string): Promise; createIndex(blob: any): Promise; findDocs(query: Query, includeDeleted: boolean): Promise; find(query: Query): Promise; load(): void; waitForLoad(query: Query): Promise; } export {};