import type { Result } from '@nangohq/utils';
import type { User } from '../models/Admin.js';
import type { DBUser } from '@nangohq/types';
declare class UserService {
    getUserById(id: number): Promise<User | null>;
    getUserByUuid(uuid: string): Promise<User | null>;
    getUserByToken(token: string): Promise<Result<DBUser>>;
    refreshEmailVerificationToken(expiredToken: string): Promise<User | null>;
    getUsersByAccountId(accountId: number): Promise<User[]>;
    countUsers(accountId: number): Promise<number>;
    getAnUserByAccountId(accountId: number): Promise<User | null>;
    getUserByEmail(email: string): Promise<User | null>;
    getUserByResetPasswordToken(link: string): Promise<User | null>;
    createUser({ email, name, hashed_password, salt, account_id, email_verified }: {
        email: string;
        name: string;
        hashed_password?: string;
        salt?: string;
        account_id: number;
        email_verified: boolean;
    }): Promise<User | null>;
    editUserPassword(user: User): Promise<number>;
    changePassword(newPassword: string, oldPassword: string, id: number): Promise<number>;
    suspendUser(id: number): Promise<void>;
    verifyUserEmail(id: number): Promise<number>;
    update({ id, ...data }: {
        id: number;
    } & Omit<Partial<DBUser>, 'id'>): Promise<DBUser | null>;
}
declare const _default: UserService;
export default _default;
