@vtex/payment-provider
Version:
VTEX Payment Provider SDK
16 lines (15 loc) • 1.43 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>>;
inbound: Array<RouteHandler<ClientsT, StateT, CustomT>>;
}
export type PaymentProviderConfigurableHandlers<ClientsT extends IOClients = IOClients, StateT extends PaymentProviderState = PaymentProviderState, CustomT extends ParamsContext = ParamsContext> = {
[key in keyof PaymentProviderHandlers<ClientsT, StateT, CustomT>]?: PaymentProviderHandlers<ClientsT, StateT, CustomT>[key];
};
export declare const buildRoutes: <ClientsT extends IOClients = IOClients, StateT extends PaymentProviderState = PaymentProviderState, CustomT extends ParamsContext = ParamsContext>(Connector: Constructor<PaymentProvider<ClientsT, StateT, CustomT>>, middlewares?: PaymentProviderConfigurableHandlers<ClientsT, StateT, CustomT>) => PaymentProviderHandlers<ClientsT, StateT, CustomT>;