@open-tender/store
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API
210 lines (209 loc) • 10.3 kB
TypeScript
import { CheckoutTenderPos, CustomerIdentifier, CustomerIdentify, Discount, Money, Order, OrderCreateDiscount, OrderCreateDiscounts, OrderCreateGiftCards, OrderCreatePoints, OrderCreatePos, OrderCreateSurcharge, OrderCreateSurcharges, OrderTender, RequestError, RequestStatus, Taxes } from '@open-tender/types';
import { AppState } from '../app';
import { OrderState } from './order';
export interface CheckoutState {
activating: RequestStatus;
authorizing: RequestStatus;
check: Order | null;
completedOrder: Order | null;
customer: CustomerIdentify | null;
discounts: OrderCreateDiscounts;
error: RequestError;
giftCards: OrderCreateGiftCards;
identifying: RequestStatus;
isTaxExempt: boolean;
loading: RequestStatus;
madeFor: string | null;
pendingDiscounts: boolean;
phone: string | null;
points: OrderCreatePoints;
removing: RequestStatus;
submitting: RequestStatus;
surcharges: OrderCreateSurcharges;
taxes: Taxes;
tip: Money | null;
validating: RequestStatus;
rate: any | null;
rating: RequestStatus;
ratingError: RequestError;
}
export declare const prepareOrder: (order: OrderState, checkout: CheckoutState) => OrderCreatePos | null;
export declare enum CheckoutActionType {
AddPromoCode = "checkout/addPromoCode",
AddTender = "checkout/addTender",
RemoveTender = "checkout/removeTender",
UpdateTender = "checkout/updateTender",
UpdateCart = "checkout/updateCart",
IdentifyCustomer = "checkout/identifyCustomer",
CompleteChipDNA = "checkout/completeChipDNA",
AddCreditTender = "checkout/addCreditTender",
ValidatePosOrder = "checkout/validatePosOrder",
SubmitPosOrder = "checkout/submitPosOrder",
VoidPosOrder = "checkout/voidPosOrder",
ActivateGiftCards = "checkout/activateGiftCards",
RateOrder = "checkout/rateOrder"
}
export declare const addPromoCode: import("@reduxjs/toolkit").AsyncThunk<Discount, string, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const addTender: import("@reduxjs/toolkit").AsyncThunk<void | OrderTender, CheckoutTenderPos, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const removeTender: import("@reduxjs/toolkit").AsyncThunk<void | OrderTender, number, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const updateTender: import("@reduxjs/toolkit").AsyncThunk<void | OrderTender, void, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const updateCart: import("@reduxjs/toolkit").AsyncThunk<void, any, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export interface IdentifyCustomer {
data: CustomerIdentifier;
callback?: () => void;
showError?: boolean;
}
export declare const identifyCustomer: import("@reduxjs/toolkit").AsyncThunk<void | CustomerIdentify, IdentifyCustomer, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const completeChipDNA: import("@reduxjs/toolkit").AsyncThunk<any, string | null, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
interface FreedomPayRequest {
transaction_id: string;
cardholder_name: string;
card_type: string;
masked_pan: string;
authorization_code: string;
entry_mode: string;
merchant_id: string;
terminal_id: string;
}
export declare const addCreditTender: import("@reduxjs/toolkit").AsyncThunk<any, {
freedompay: FreedomPayRequest;
}, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const validatePosOrder: import("@reduxjs/toolkit").AsyncThunk<void | Order, void, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const submitPosOrder: import("@reduxjs/toolkit").AsyncThunk<void | Order, void, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const voidPosOrder: import("@reduxjs/toolkit").AsyncThunk<void | Order, void, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const activateGiftCards: import("@reduxjs/toolkit").AsyncThunk<any, any, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const rateOrder: import("@reduxjs/toolkit").AsyncThunk<any, any, {
state: AppState;
rejectValue: RequestError;
dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
extra?: unknown;
serializedErrorType?: unknown;
pendingMeta?: unknown;
fulfilledMeta?: unknown;
rejectedMeta?: unknown;
}>;
export declare const resetPosCheckout: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"checkout/resetPosCheckout">, resetPosCheck: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"checkout/resetPosCheck">, resetPosCheckError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"checkout/resetPosCheckError">, handleCheckoutError: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/handleCheckoutError">, addGiftCard: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/addGiftCard">, removeGiftCard: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/removeGiftCard">, addSurcharge: import("@reduxjs/toolkit").ActionCreatorWithPayload<OrderCreateSurcharge, "checkout/addSurcharge">, removeSurcharge: import("@reduxjs/toolkit").ActionCreatorWithPayload<OrderCreateSurcharge, "checkout/removeSurcharge">, addDiscount: import("@reduxjs/toolkit").ActionCreatorWithPayload<OrderCreateDiscount & {
index?: number | undefined;
}, "checkout/addDiscount">, removeDiscount: import("@reduxjs/toolkit").ActionCreatorWithPayload<OrderCreateDiscount & {
index?: number | undefined;
}, "checkout/removeDiscount">, addTax: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/addTax">, removeTax: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/removeTax">, addTip: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/addTip">, removeTip: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"checkout/removeTip">, setTaxExempt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/setTaxExempt">, addCustomer: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/addCustomer">, removeCustomer: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"checkout/removeCustomer">, setPendingDiscounts: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/setPendingDiscounts">, setPoints: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/setPoints">, setMadeFor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/setMadeFor">, setPhone: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "checkout/setPhone">;
export declare const selectPosCheckout: (state: AppState) => CheckoutState;
export declare const selectPosCheck: (state: AppState) => Order | null;
export declare const selectPosCustomer: (state: AppState) => CustomerIdentify | null;
export declare const selectPosCustomerName: (state: AppState) => string | null;
export declare const selectPosCustomerNameShort: (state: AppState) => string | null;
export declare const selectPosPendingDiscounts: (state: AppState) => boolean;
export declare const selectPosAmountDue: (state: AppState) => `${number}.${number}` | null;
export declare const selectPosCheckSubtotal: (state: AppState) => `${number}.${number}`;
export declare const selectPosCheckTotal: (state: AppState) => `${number}.${number}`;
export declare const selectPosCheckTenders: (state: AppState) => import("@open-tender/types").OrderTenders;
export declare const checkoutReducer: import("redux").Reducer<CheckoutState>;
export {};