@vtex/payment-provider-sdk
Version:
VTEX Payment Provider SDK
19 lines (18 loc) • 1.94 kB
TypeScript
import type { IOClients, ParamsContext, RouteHandler } from '@vtex/api';
import type { Constructor } from 'ramda';
import type { PaymentProviderState } from '.';
import type { PaymentProvider } from './paymentProvider';
export interface PaymentProviderHandlers<ClientsT extends IOClients = IOClients, StateT extends PaymentProviderState = PaymentProviderState, CustomT extends ParamsContext = ParamsContext> {
authorize: Array<RouteHandler<ClientsT, StateT, CustomT>>;
settle: Array<RouteHandler<ClientsT, StateT, CustomT>>;
cancel: Array<RouteHandler<ClientsT, StateT, CustomT>>;
refund: Array<RouteHandler<ClientsT, StateT, CustomT>>;
paymentMethods: Array<RouteHandler<ClientsT, StateT, CustomT>>;
manifest: Array<RouteHandler<ClientsT, StateT, CustomT>>;
inbound: Array<RouteHandler<ClientsT, StateT, CustomT>>;
}
export declare type AvailableConfigurableHandlers<ClientsT extends IOClients = IOClients, StateT extends PaymentProviderState = PaymentProviderState, CustomT extends ParamsContext = ParamsContext> = Omit<PaymentProviderHandlers<ClientsT, StateT, CustomT>, 'manifest' | 'paymentMethods'>;
export declare type PaymentProviderConfigurableHandlers<ClientsT extends IOClients = IOClients, StateT extends PaymentProviderState = PaymentProviderState, CustomT extends ParamsContext = ParamsContext> = {
[key in keyof AvailableConfigurableHandlers<ClientsT, StateT, CustomT>]?: AvailableConfigurableHandlers<ClientsT, StateT, CustomT>[key];
};
export declare const buildRoutes: <ClientsT extends IOClients = IOClients, StateT extends PaymentProviderState<import(".").PaymentRequest> = PaymentProviderState<import(".").PaymentRequest>, CustomT extends ParamsContext = ParamsContext>(Connector: Constructor<PaymentProvider<ClientsT, StateT, CustomT>>, middlewares?: PaymentProviderConfigurableHandlers<ClientsT, StateT, CustomT> | undefined) => PaymentProviderHandlers<ClientsT, StateT, CustomT>;