declare const tableTypes: readonly ["comments", "posts", "messages", "registrations", "mentions", "replies", "comments", "commentReports", "postReports", "messageReports", "removedPosts", "lockedPosts", "featuredPosts", "removedComments", "removedCommunities", "communityBans", "modsAddedToCommunities", "modsTransferredToCommunities", "adminsAdded", "siteBans"];
type TableType = (typeof tableTypes)[number];
export type StorageInfoGetter = (id: number) => Promise<StorageInfo>;
export type RowUpserter = (id: number, minutesUntilReprocess?: number) => Promise<void>;
type DatabaseFunctions = {
    get: StorageInfoGetter;
    upsert: RowUpserter;
};
export type StorageInfo = {
    exists: boolean;
    reprocessTime: Date | null;
};
export declare const useDatabaseFunctions: (table: TableType, doStuff: (funcs: DatabaseFunctions) => Promise<void>, dbPath?: string) => Promise<void>;
export declare const setupDB: (log: (output: string) => void, dbPath?: string) => Promise<void>;
export {};
