@nickbusey/thelounge
Version:
The self-hosted Web IRC client
38 lines (37 loc) • 1.45 kB
TypeScript
import type { Database } from "sqlite3";
import Msg, { Message } from "../../models/msg";
import Client from "../../client";
import Chan, { Channel } from "../../models/chan";
import type { SearchResponse, SearchQuery, SqliteMessageStorage as ISqliteMessageStorage } from "./types";
import Network from "../../models/network";
declare class Deferred {
resolve: () => void;
promise: Promise<void>;
constructor();
}
declare class SqliteMessageStorage implements ISqliteMessageStorage {
client: Client;
isEnabled: boolean;
database: Database;
initDone: Deferred;
constructor(client: Client);
_enable(): Promise<void>;
enable(): Promise<void>;
run_migrations(): Promise<void>;
close(): Promise<void>;
index(network: Network, channel: Chan, msg: Msg): Promise<void>;
deleteChannel(network: Network, channel: Channel): Promise<void>;
/**
* Load messages for given channel on a given network and resolve a promise with loaded messages.
*
* @param network Network - Network object where the channel is
* @param channel Channel - Channel object for which to load messages for
*/
getMessages(network: Network, channel: Channel): Promise<Message[]>;
search(query: SearchQuery): Promise<SearchResponse>;
canProvideMessages(): boolean;
private serialize_run;
private serialize_fetchall;
private serialize_get;
}
export default SqliteMessageStorage;