import { ESP_PAGE_NAME } from '../../constant/easysafepay';
import { DisplayTypeEnum, IPaymentSessionMetaData, PaymentMethodCategoryTypeEnum, ProductSceneEnum } from '../../types';
import { SDKMetaData } from '../index';
/**
 * Tell the SDK which version of the Web App to load.
 * Sent by server inside paymentSession.
 */
export interface WebAppMatchConfig {
    /**
     * SDK support version range, '{minVer}|{maxVer}', such as '1.0.0' or '1.0.0|2.0.0' or '2.0.0'
     * If SDK version < maxVer and > minVer, then will use this config entry.
     */
    v: string;
    appVersion: string;
    productScene?: string;
    platform?: string;
    mid?: string;
    greyscale?: string;
}
/**
 * Tell the SDK which Web App URL to load.
 * Sent by server inside paymentSession.
 */
export interface WebAppUrlMatchConfig {
    minSDKVersion: string;
    url: string;
    doubleFa: string;
    mids?: string[];
}
export interface QueryParams {
    displayType: DisplayTypeEnum;
    locale: string;
    instanceId: string;
    analyticsEnabled: boolean;
    isPreload?: string;
    hostSign?: string;
}
export declare const getWebAppUrlInfo: (params: {
    environment: string;
    sdkMetaData: SDKMetaData;
    productScene: ProductSceneEnum;
    productSceneVersion: string;
    paymentMethodCategoryType: PaymentMethodCategoryTypeEnum;
    isPreload?: boolean;
    query: QueryParams;
    v2Url?: string;
}) => {
    path: string;
    locationSearch: string;
};
export declare const getWebAppV2Url: (params: {
    environment: string;
    sdkMetaData: SDKMetaData;
    productScene: ProductSceneEnum;
    productSceneVersion: string;
    paymentMethodCategoryType: PaymentMethodCategoryTypeEnum;
    isPreload?: boolean;
    query: QueryParams;
    mid?: string;
    extendInfo?: string;
}) => string;
export declare const getWebAppUrl: (params: {
    environment: string;
    sdkMetaData: SDKMetaData;
    productScene: ProductSceneEnum;
    productSceneVersion: string;
    paymentMethodCategoryType: PaymentMethodCategoryTypeEnum;
    isPreload?: boolean;
    query: QueryParams;
    v2Url?: string;
}) => string;
export declare const parseWebAppMatchConfig: (extendInfo: string) => WebAppMatchConfig[];
export declare const parseWebAppUrlMatchConfig: (extendInfo: string) => WebAppUrlMatchConfig[];
/**
 * Save the current checkout URL to localStorage for the specified product scene.
 *
 * @param productScene - The product scene for which the checkout URL should be saved.
 */
export declare const saveLocalCheckoutUrl: (productScene: ProductSceneEnum, url: string) => void;
/**
 * 获取从外部动态下发的V2AppUrl.
 *
 * @param config - sessionData解析来的checkoutInfo列表.
 */
export declare const getMatchedWebAppV2Url: (productScene: ProductSceneEnum, mid: string, configs: WebAppUrlMatchConfig[], env: string) => string;
/**
 * 获取ESP从sessionData.checkoutInfo内动态下发的Url.
 */
export declare const matchEasySafePayV2Url: (params: {
    configs: WebAppUrlMatchConfig[];
    mid: string;
    env: string;
    pageName: ESP_PAGE_NAME;
}) => string;
/**
 * Retrieve the saved checkout URL from localStorage for the specified product scene.
 * If no url is found, a default checkout url string is returned.
 *
 * @param productScene - The product scene for which the checkout URL should be retrieved.
 */
export declare const getLocalCheckoutUrl: (productScene: ProductSceneEnum, environment: string) => string;
/**
 * Provide default checkout URL for the specified product scene.
 * Return URL for 'EASY_PAY' product scene, while for other product scenes, it returns an empty string as they are not currently in use
 *
 * @param productScene - The product scene for which the default checkout URL should be provided.
 */
export declare const defaultCheckoutUrl: (productScene: ProductSceneEnum, environment?: string) => string;
/**
 * V2应用EasySafePay 热更新兜底URL构建规则
 **/
export declare const getDefaultEasySafePayPageUrl: (pageName: ESP_PAGE_NAME, env: string) => string;
/**通过sessionData获取doubleFa,于createComponent时传递给WEB应用*/
export declare const getDoubleFaUrlFromSession: (paymentSessionObj: IPaymentSessionMetaData, env?: string) => string;
