import { Knex } from 'knex'; import { AdminService, InternalAdmin } from '../types/admin.js'; /** * Knex-based implementation of AdminService */ export declare class KnexAdminService implements AdminService { private readonly tableName; private knex; constructor(knex: Knex); /** * Find an admin by email * @param email Admin email to search for * @returns Admin or null if not found */ findAdminByEmail(email: string): Promise; /** * Find an admin by ID * @param id Admin ID to search for * @returns Admin or null if not found */ findAdminById(id: string): Promise; /** * Create a new admin * @param admin Admin details * @param password Plain text password * @returns Created admin */ createAdmin(admin: Partial, password: string): Promise; /** * Update an admin * @param id Admin ID * @param admin Admin details to update * @returns Updated admin */ updateAdmin(id: string, admin: Partial): Promise; /** * Update an admin's password * @param id Admin ID * @param password New plain text password */ updatePassword(id: string, password: string): Promise; /** * Delete an admin * @param id Admin ID */ deleteAdmin(id: string): Promise; /** * Validate a password against an admin's stored hash * @param admin Admin object * @param password Plain text password to validate * @returns True if password is valid */ validatePassword(admin: InternalAdmin, password: string): Promise; /** * List admins with pagination * @param page Page number (1-based) * @param limit Items per page * @returns Paginated list of admins */ listAdmins(page?: number, limit?: number): Promise<{ admins: InternalAdmin[]; total: number; page: number; limit: number; }>; /** * Check if an admin has a specific permission * @param adminId Admin ID * @param permission Permission to check * @returns True if admin has permission */ hasPermission(adminId: string, permission: string): Promise; /** * Grant a permission to an admin * @param adminId Admin ID * @param permission Permission to grant */ grantPermission(adminId: string, permission: string): Promise; /** * Revoke a permission from an admin * @param adminId Admin ID * @param permission Permission to revoke */ revokePermission(adminId: string, permission: string): Promise; /** * Update admin last login timestamp * @param id Admin ID */ updateLastLogin(id: string): Promise; } //# sourceMappingURL=admin.knex.service.d.ts.map