import { InsertResult, Repository } from 'typeorm';
import ConfirmCode from "../../entities/confirm-code.js";
/**
 * Abstract class for confirmation services
 */
declare abstract class Abstract {
    /**
     * @protected
     */
    protected readonly repository: Repository<ConfirmCode>;
    /**
     * @protected
     */
    protected readonly context?: Record<string, any>;
    /**
     * @constructor
     */
    /**
     * @constructor
     */
    constructor(repository: Abstract['repository'], context?: Abstract['context']);
    /**
     * Send confirmation service
     */
    /**
     * Send confirmation service
     */
    abstract send(login: string): Promise<boolean> | boolean;
    /**
     * Generate confirmation code
     * @protected
     */
    /**
     * Generate confirmation code
     * @protected
     */
    protected generateCode(min?: number, max?: number): string;
    /**
     * Save code
     * @protected
     */
    /**
     * Save code
     * @protected
     */
    protected saveCode(login: string, code: string, expirationAt?: number | null): Promise<InsertResult>;
    /**
     * Verify confirmation code
     */
    /**
     * Verify confirmation code
     */
    verifyCode(login?: string | null, code?: string | number): Promise<boolean>;
    /**
     * Get current timestamp
     * @protected
     */
    /**
     * Get current timestamp
     * @protected
     */
    protected static getTimestamp(): number;
}
export { Abstract as default };
