import knexMod = require("knex"); export interface BaseUser { id?: number; email: string; username: string; lastRequest?: Date; auth?: string; validationHash?: string | null; validationExpires?: Date | null; } export declare abstract class UserStore { abstract initStore(): Promise; abstract routineCleanup(): Promise; abstract getLastRequest(userId: number): Promise; abstract writeLastRequest(userId: number): Promise; abstract writeNewUser(i: { username: string; email: string; auth: string; validationHash: string | null; validationExpires: Date | null; }, extra: Partial): Promise; abstract deleteUserId(id: number): Promise; abstract queryUserByValidationHash(hash: string): Promise; abstract queryUserByResetPasswordHash(hash: string): Promise; abstract queryUserByEmail(email: string): Promise; abstract queryUserByName(name: string): Promise; abstract queryUserById(id: number): Promise; abstract clearValidationHash(userId: number): Promise; abstract setValidationHash(userId: number, hash: string): Promise; abstract writeResetPwdRequest(userId: number, hash: string, expires: Date): Promise; abstract writeNewPassword(requestId: string, pwdhash: string): Promise; } export declare class KnexStore extends UserStore { ctx: Nextpress.Context; constructor(ctx: Nextpress.Context); _knex: knexMod; userTableName: string; fields: string[]; userTable(): knexMod.QueryBuilder; static initRun: boolean; initStore(): Promise; private _queryUserById; routineCleanup(): Promise; getLastRequest(id: number): Promise; writeLastRequest(id: number): Promise; writeNewUser(i: { username: string; email: string; auth: string; validationHash: string | null; validationExpires: Date | null; }, extra?: Partial): Promise; deleteUserId(pkey: number): Promise; queryUserByValidationHash(hash: string): Promise; clearValidationHash(userId: number): Promise; setValidationHash(userId: number, hash: string): Promise; queryUserByEmail(email: string): Promise; writeResetPwdRequest(id: number, hash: string, expires: Date): Promise; queryUserByResetPasswordHash(hash: string): Promise; writeNewPassword(requestId: string, pwdhash: string): Promise; queryUserByName(username: string): Promise; queryUserById(id: number): Promise; }