import { UserInfo } from "../../types";
export type SSOV2StoreType = {
    userInfo?: UserInfo;
    abTestFlow?: 'A' | 'B';
    setABTestFlow: (flow?: 'A' | 'B') => void;
    setUserInfo: (userInfo?: UserInfo) => void;
    isOpen: boolean;
    setOpen: (isOpen: boolean) => void;
    returnUrl?: string;
    setReturnUrl: (returnUrl: string) => void;
    mounted?: boolean;
    setMounted: (mounted: boolean) => void;
    source?: string;
    setSource: (source: string) => void;
    setupSource?: string;
    setSetupSource: (source: string) => void;
    triggerLogin: (params?: {
        source?: string;
        returnUrl?: string;
        legalTextType?: 'community' | 'default';
        forceReloadOnClose?: boolean;
    }) => void;
    triggerCareEmailPhoneVerify: (params?: {
        source?: string;
        returnUrl?: string;
        skipForceSetup?: boolean;
        legalTextType?: 'community' | 'default';
    }) => void;
    triggerCommunityEmailVerify: (params?: {
        source?: string;
        returnUrl?: string;
        skipForceSetup?: boolean;
        legalTextType?: 'community' | 'default';
        forceReloadOnClose?: boolean;
    }) => void;
    overrideClose?: () => void;
    onCloseProp?: () => void;
    setOnCloseProp: (onClose: () => void) => void;
    forceReloadOnClose?: boolean;
    flowData?: {
        method?: 'email' | 'sms' | 'zalo' | 'google' | 'facebook' | 'phone' | 'whatsapp';
        flow?: 'login' | 'signup';
        isVerifyPhone?: boolean;
        /** These data is fetched from API to use in the email flow */
        metaData?: {
            is_birthday?: boolean;
            is_gender?: boolean;
            is_name?: boolean;
            is_pass?: boolean;
            is_phone_verified?: boolean;
        };
    };
};
export declare const useSSOV2Store: import("zustand").UseBoundStore<import("zustand").StoreApi<SSOV2StoreType>>;
export declare const redirect: (returnUrl?: string, source?: string, forceReload?: boolean) => boolean;
export declare const IS_SSOV2_ENABLED: (locale?: string) => boolean;
export declare const getSSOFlowFromUserProfile: (userInfo: UserInfo) => any;
export declare const isUserFinishedSetup: (userInfo: UserInfo) => any;
export declare const isFlowFinishedSetup: (flowData: SSOV2StoreType['flowData']) => boolean;
export declare const isUserNeedPassword: (flowData?: SSOV2StoreType['flowData'], userInfo?: UserInfo) => boolean;
export declare const isPhoneNotVerifedYet: (userInfo?: UserInfo) => boolean;
export declare const isLoginWithPhoneNotVerifedYet: (flowData?: SSOV2StoreType['flowData'], userInfo?: UserInfo) => boolean;
