import { EventBusService, Logger, TransactionBaseService } from "@medusajs/medusa";
import CustomerRepository from "@medusajs/medusa/dist/repositories/customer";
import { PluginOptions } from "../index";
import { APIResponse, StatusResponseViewModel } from "../api/index";
export interface EmailConfirmationPluginOptions {
    token_max_lifetime_days?: number;
    autoinit_on_register: boolean;
}
export default class EmailConfirmationService extends TransactionBaseService {
    static LIFE_TIME: import("awilix").LifetimeType;
    protected customerRepository: typeof CustomerRepository;
    protected eventBusService: EventBusService | undefined;
    logger: Logger;
    options_: PluginOptions;
    constructor(container: any, options: PluginOptions);
    options(): PluginOptions;
    private randomString;
    private generateToken;
    private confirmEmail;
    tokenRequest(email: string, autogenerate?: boolean): Promise<APIResponse<never>>;
    status(email: string): Promise<APIResponse<StatusResponseViewModel>>;
    confirm(email: string, token: string): Promise<APIResponse<never>>;
}
