import { Repository } from 'typeorm';
import IdProvider from "../constants/id-provider.js";
import Profile from "../entities/profile.js";
import UserEntity from "../entities/user.js";
declare class User extends Repository<UserEntity> {
    /**
     * Encrypt user password
     */
    /**
     * Encrypt user password
     */
    encryptPassword(user: UserEntity): Promise<UserEntity>;
    /**
     * Validate user password
     */
    /**
     * Validate user password
     */
    isValidPassword(user: UserEntity, password: string): boolean;
    /**
     * Find user by provider identifier
     */
    /**
     * Find user by provider identifier
     */
    findUserByIdentifier(provider: IdProvider, identifier: string): Promise<UserEntity | undefined>;
    /**
     * Add profile entity to user
     */
    /**
     * Add profile entity to user
     */
    attachProfile(user: UserEntity, updateParams?: Partial<Profile['params']>): Promise<UserEntity>;
    /**
     * Verify if restore account time is exceeded
     */
    /**
     * Verify if restore account time is exceeded
     */
    verifyDeleteAt(user?: UserEntity): Promise<void>;
    /**
     * Clear  user tokens
     * @description Use cases:
     * 1. If token passed - clear rest user tokens
     * 2. If token not passed - clear all user tokens
     */
    /**
     * Clear  user tokens
     * @description Use cases:
     * 1. If token passed - clear rest user tokens
     * 2. If token not passed - clear all user tokens
     */
    clearUserTokens(userId: string, tokenId?: string): Promise<void>;
}
export { User as default };
