import { BusSubscriber } from '../core/bus';
import { PaymentMethodCategoryTypeEnum, ProductSceneEnum, ProductSceneVersion } from '../types';
export type IExtendPlugin = IExtendPluginItem[];
export interface ComponentActionNamesType {
    canMakePayments?: string;
    optional_init?: string;
    createComponent?: string;
    mountComponent?: string;
    submit?: string;
    destroyComponent?: string;
    getValue?: string;
}
export type IExtendPluginItem = {
    /**
     * 以下为sessionData匹配的场景
     */
    sessionMatcher?: {
        productScene: ProductSceneEnum;
        productSceneVersion: ProductSceneVersion;
        paymentMethodCategoryType: PaymentMethodCategoryTypeEnum;
        paymentMethodTypes: string[];
    };
    /**
     * 用于无sessionData场景，比如：canMakePayments
     */
    paymentChannelMatcher?: {
        paymentMethod: string;
    };
    /**
     * 以下plugin 实现的定义
     */
    busActionNames: ComponentActionNamesType;
    busSubscriber?: BusSubscriber;
};
