/// import * as Discord from "db-discord-discord.js"; import { EventEmitter } from "events"; import { TableType } from "./db-discord"; import { KeyPairValue, Regexify } from "./utilities"; export interface SearchArguments { searchTerm?: string; searchObject?: Partial; regexChecker?: Partial>; callback?: (obj: T) => boolean; } export declare interface Table { on(event: "write", listener: (obj: T) => void): this; emit(event: "write", args: T): boolean; } export declare abstract class Table extends EventEmitter { abstract type: TableType; name: string; id: string; protected channel: Discord.TextChannel; constructor(channel: Discord.TextChannel); abstract write(obj: T): Promise; abstract get(id: string): Promise; delete(id: string): Promise<{}>; abstract search(searchArguments: SearchArguments): Promise[]>; }