import User from './Services/Identity/User';
declare type Mobx = typeof import('mobx');
export type RegionParams = {
    region?: string;
};
export type BringgGlobals = {
    mobx: Mobx;
};
export type TokenParams = {
    authenticationToken: string;
    globals?: BringgGlobals;
} & RegionParams;
/**
 * Request params for exchanging with the server one-time sign-in codes with a user session token.
 *
 * Both "token" and "secret" are random strings, and serve as codes for the exchange. They are not actually secret.
 * When both are sent together to the server, they are exchanged for a real session token.
 */
export type CodeExchangeParams = {
    token: string;
    secret: string;
    globals?: BringgGlobals;
} & RegionParams;
export type EmailParams = {
    email: string;
    password: string;
    merchant_uuid?: string;
    recaptchaToken?: string;
    recaptcha_qa_token?: string;
    globals?: BringgGlobals;
} & RegionParams;
export type SessionParams = {
    code: string;
    session: string;
    globals?: BringgGlobals;
} & RegionParams;
export type UserParams = {
    user: User;
    globals?: BringgGlobals;
} & RegionParams;
export type OtpParams = {
    email: string;
    password: string;
    otp: string;
    merchant_uuid?: string;
    recaptchaToken?: string;
    recaptcha_qa_token?: string;
    globals?: BringgGlobals;
} & RegionParams;
export type SessionInitParams = TokenParams | EmailParams | SessionParams | UserParams | CodeExchangeParams | OtpParams;
export {};
