import User from "../entities/user.js";
import UserRepository from "../repositories/user.js";
import { ConfirmBy } from "./confirm/factory.js";
interface IChangeLoginParams {
    userId: string;
    login: string;
    confirmBy: ConfirmBy;
    isConfirmed: () => Promise<boolean> | boolean;
    repository: UserRepository;
}
/**
 * Change user login: email or phone
 */
declare class ChangeLogin {
    /**
     * @protected
     */
    protected readonly userId: IChangeLoginParams['userId'];
    /**
     * @protected
     */
    protected readonly login: IChangeLoginParams['login'];
    /**
     * @protected
     */
    protected readonly confirmBy: IChangeLoginParams['confirmBy'];
    /**
     * @protected
     */
    protected readonly isConfirmed: IChangeLoginParams['isConfirmed'];
    /**
     * @protected
     */
    protected readonly repository: IChangeLoginParams['repository'];
    /**
     * @constructor
     */
    /**
     * @constructor
     */
    protected constructor({ userId, login, confirmBy, repository, isConfirmed }: IChangeLoginParams);
    /**
     * Init service
     */
    /**
     * Init service
     */
    static init(params: IChangeLoginParams): ChangeLogin;
    /**
     * Change login
     */
    /**
     * Change login
     */
    change(): Promise<User>;
}
export { ChangeLogin as default, IChangeLoginParams };
