import type { QueryBuilder } from '@atlex/orm'; import type { Authenticatable } from '../contracts/Authenticatable.js'; import type { UserProvider } from '../contracts/UserProvider.js'; import { type HashManager } from '../hashing/HashManager.js'; type Row = Record; /** * Loads users from a SQL table via {@link QueryBuilder}. */ export declare class DatabaseUserProvider implements UserProvider { private readonly query; private readonly table; private readonly hash; private readonly emailColumn; private readonly hydrate; /** * @param query - Factory for a fresh query builder. * @param table - Users table. * @param hash - Password hasher. * @param hydrate - Maps a DB row to an {@link Authenticatable}. * @param emailColumn - Email/login column name. * @param passwordColumn - Hashed password column name. */ constructor(query: () => QueryBuilder, table: string, hash: HashManager, hydrate: (row: Row) => Authenticatable, emailColumn?: string, passwordColumn?: string); /** * @inheritdoc */ retrieveById(id: string | number): Promise; /** * @inheritdoc */ retrieveByToken(id: string | number, token: string): Promise; /** * @inheritdoc */ updateRememberToken(user: Authenticatable, token: string): Promise; /** * @inheritdoc */ retrieveByCredentials(credentials: Record): Promise; /** * @inheritdoc */ validateCredentials(user: Authenticatable, credentials: Record): Promise; } export {}; //# sourceMappingURL=DatabaseUserProvider.d.ts.map