import { ForkEffect } from 'redux-saga/effects'; import { IStoreFetchableDataState, StoreFetchableData } from './base'; export declare type TCardBalanceCheckChainData = [EVA.Core.CardBalanceCheckResponse]; export interface IAvailableGiftCardHandler { CardType?: string; Handler: string; } /** * Will be present in the GetApplicationConfiguration response under a property named 'AvailableGiftCardHandlers' * @see https://n6k.atlassian.net/browse/OPTR-11765 * @see https://n6k.atlassian.net/browse/OPTR-14043 */ export declare type TAvailableGiftCardHandlers = IAvailableGiftCardHandler[]; export interface IGetGiftCardHandlerByPaymentTypeOpts { /** @param paymentMethodTypeModel the target payment method type model, available under `GetAvailablePaymentMethods.Results[n].Types[k]` */ paymentMethodTypeModel: EVA.Core.AvailablePaymentMethodType; /** @param giftCardHandlers retrieved from `GetApplicationConfiguration` under AvailableGiftCardHandlers property */ giftCardHandlers: TAvailableGiftCardHandlers; } /** * Implements CardBalanceCheck fetch for the Redux store * * @export * @class CardBalanceCheck * @extends {StoreFetchableData} */ export declare class CardBalanceCheck extends StoreFetchableData { /** * Creates an instance of CardBalanceCheck * * @memberof CardBalanceCheck */ constructor(); /** * The saga listener for this store section * * @memberof CardBalanceCheck */ saga(): Generator; /** * Will return the matching giftcard handler given a paymentMethodTypeModel. * * Beware that a paymentMethodTypeModel could have multiple matching giftcard handlers. This method will still only return the first one. * Consumers are responsible for facillitating a UI that allows the user to choose whatever giftcard handler they want. * * @returns The matching giftcard handler. If no match is found, returns null. The match can be then used in a cardBalanceCheck like so * - `Handler` => `Handler` * - `CardType` in (AvailableGiftCardHandler) => `CardSubType` (in cardBalanceCheck) */ getGiftCardHandlerByPaymentType(opts: IGetGiftCardHandlerByPaymentTypeOpts): IAvailableGiftCardHandler | undefined; } export interface ICardBalanceCheckState extends IStoreFetchableDataState { } export declare const cardBalanceCheck: CardBalanceCheck;