import { MoreDataAuthResponse, OTPActions, SendOTPResponse } from '@bringg/types';
import URLEndpoint from '../../Core/Http/URLEndpoint';
import { OtpParams } from '../../LoginParams';
import { Route } from '../Route';
import { Service } from '../Service';
import User from './User';
export declare const CREATE_TOKEN_ROUTE: Route;
export declare const CREATE_TOKEN_ONE_TIME_CODE_ROUTE: Route;
export declare const GET_USER_ROUTE: Route;
export declare const LOGOUT_ROUTE: Route;
export declare const SWITCH_ROUTE: Route;
export declare const IMPERSONATE_ROUTE: Route;
export declare const IMPERSONATE_BY_TEAM_ROUTE: Route;
export declare const UNWIND_ROUTE: Route;
export declare const RESEND_CONFIRMATION_EMAIL_ROUTE: Route;
export declare const OTP_CREATE_TOKEN_ROUTE: Route;
export declare const SEND_OTP_MAIL_ROUTE: Route;
export default class AuthService implements Service {
    endpoint: URLEndpoint;
    private clientId;
    constructor(clientId: string, endpoint: URLEndpoint);
    static init(region: string): AuthService;
    static isRecaptchaNeeded(object: any): object is MoreDataAuthResponse;
    static isRegionInformationNeeded(object: any): object is MoreDataAuthResponse;
    loginWithOneTimeCode(token: string, secret: string): Promise<User>;
    loginWithSessionCode(code: string, session: string): Promise<User>;
    loginWithEmail(email: string, password: string, merchant_uuid?: string, recaptcha?: string, recaptcha_qa_token?: string): Promise<User>;
    loginWithToken(authToken: string): Promise<User>;
    logout(authToken: string): Promise<boolean>;
    switchAccounts(authToken: string): Promise<User>;
    unwind(authToken: string): Promise<User>;
    impersonate(authToken: string, user_id: number): Promise<User>;
    impersonateByTeam(authToken: string, team_id: number): Promise<User>;
    resendConfirmationEmail(email: string, password: string, merchant_uuid?: string, recaptcha?: string, recaptcha_qa_token?: string): Promise<boolean>;
    loginWithOTP(email: OtpParams['email'], password: OtpParams['password'], otp: OtpParams['otp'], merchant_uuid?: OtpParams['merchant_uuid'], recaptchaToken?: OtpParams['recaptchaToken'], recaptcha_qa_token?: OtpParams['recaptcha_qa_token'], region?: OtpParams['region']): Promise<User>;
    sendOtpEmail(email: string, protected_action: OTPActions): Promise<SendOTPResponse>;
}
