import type { LogProvider } from '../logger';
import User from '../types/user';
import type { ICreateUser, IUserLookup, IUserStore, IUserUpdateFields } from '../types/stores/user-store';
import type { Db } from './db';
import type { IFlagResolver } from '../types';
declare class UserStore implements IUserStore {
    private db;
    private logger;
    private flagResolver;
    constructor(db: Db, getLogger: LogProvider, flagResolver: IFlagResolver);
    getPasswordsPreviouslyUsed(userId: number): Promise<string[]>;
    deletePasswordsUsedMoreThanNTimesAgo(userId: number, keepLastN: number): Promise<void>;
    update(id: number, fields: IUserUpdateFields): Promise<User>;
    insert(user: ICreateUser): Promise<User>;
    upsert(user: ICreateUser): Promise<User>;
    buildSelectUser(q: IUserLookup): any;
    activeAll(): any;
    activeUsers(): any;
    hasUser(idQuery: IUserLookup): Promise<number | undefined>;
    getAll(): Promise<User[]>;
    search(query: string): Promise<User[]>;
    getAllWithId(userIdList: number[]): Promise<User[]>;
    getByQuery(idQuery: IUserLookup): Promise<User>;
    delete(id: number): Promise<void>;
    getPasswordHash(userId: number): Promise<string>;
    setPasswordHash(userId: number, passwordHash: string, disallowNPreviousPasswords: number): Promise<void>;
    incLoginAttempts(user: User): Promise<void>;
    successfullyLogin(user: User): Promise<number>;
    deleteAll(): Promise<void>;
    deleteScimUsers(): Promise<void>;
    count(): Promise<number>;
    countServiceAccounts(): Promise<number>;
    countRecentlyDeleted(): Promise<number>;
    destroy(): void;
    exists(id: number): Promise<boolean>;
    get(id: number): Promise<User>;
    getFirstUserDate(): Promise<Date | null>;
}
export default UserStore;
//# sourceMappingURL=user-store.d.ts.map