import { Cart, CartCounts, CartItem, CartLevels, DeviceType, MenuCategory, MenuRevenueCenter, Messages, OrderCart, OrderType, PrepType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
import { AppState } from '../app';
export interface NestedOption {
    groupId: number;
    optionId: number;
    levels: CartLevels;
}
export interface OrderState {
    orderId: string | null;
    orderType: OrderType | null;
    serviceType: ServiceType | null;
    revenueCenterId: number | null;
    table: string | null;
    prepType: PrepType | null;
    requestedAt: RequestedAt;
    currentVendor: MenuRevenueCenter | null;
    currentCategory: MenuCategory | null;
    currentItem: CartItem | null;
    currentOption: NestedOption | null;
    currentSection: string | null;
    cart: Cart;
    cartCounts: CartCounts;
    messages: Messages;
    alert: string | null;
    error: RequestError;
    loading: RequestStatus;
    deviceType?: DeviceType;
}
export declare enum OrderActionType {
    Reorder = "orders/reorder"
}
export declare const reorder: import("@reduxjs/toolkit").AsyncThunk<{
    cart: Cart;
    cartCounts: CartCounts;
}, OrderCart, {
    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 resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenterId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenterId">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, setCurrentOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<NestedOption | null, "orders/setCurrentOption">, setCurrentSection: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentSection">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">, setOrderDeviceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderDeviceType">;
export declare const selectOrder: (state: AppState) => OrderState;
export declare const selectAlert: (state: AppState) => string | null;
export declare const selectMessages: (state: AppState) => Messages;
export declare const selectOrderType: (state: AppState) => OrderType | null;
export declare const selectOrderTypeName: (state: AppState) => string;
export declare const selectServiceType: (state: AppState) => ServiceType | null;
export declare const selectServiceTypeName: (state: AppState) => string | undefined;
export declare const selectRequestedAt: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | "ASAP";
export declare const selectRevenueCenterId: (state: AppState) => number | null;
export declare const selectMenuSlug: (state: AppState) => string;
export declare const selectMenuVars: (state: AppState) => {
    revenueCenterId: number | null;
    serviceType: ServiceType | null;
    requestedAt: RequestedAt;
};
export declare const selectCurrentVendor: (state: AppState) => MenuRevenueCenter | null;
export declare const selectCurrentCategory: (state: AppState) => MenuCategory | null;
export declare const selectCurrentItem: (state: AppState) => CartItem | null;
export declare const selectCurrentOption: (state: AppState) => NestedOption | null;
export declare const selectCurrentSection: (state: AppState) => string | null;
export declare const selectCart: (state: AppState) => Cart;
export declare const selectCartIds: ((state: {
    alerts: import("@open-tender/types").Alerts;
    allergens: import("./allergens").AllergensState;
    arrivals: import("./arrivals").ArrivalsState;
    cartSummary: import("./cartSummary").CartSummaryState;
    checkout: import("./checkout").CheckoutState;
    config: import("./config").ConfigState;
    customer: import("./customer").CustomerState;
    customerIdentify: import("./customerIdentify").CustomerIdentifyState;
    deals: import("./deals").DealsState;
    discounts: import("./discounts").DiscountsState;
    errorAlerts: import("./errorAlerts").ErrorAlertsState;
    kds: import("./kds").KdsState;
    kiosk: import("./kiosk").KioskState;
    menu: import("./menu").MenuState;
    menuPages: import("./menuPages").MenuPagesState;
    modal: import("./modal").ModalState;
    notifications: import("@open-tender/types").Notifications;
    offlineAuths: import("./offlineAuths").OfflineAuthsState;
    order: OrderState;
    pos: import("./pos").PosState;
    punches: import("./punches").PunchesState;
    refund: import("./refund").RefundState;
    sendReceipt: import("./sendReceipt").SendReceiptState;
    settings: import("./settings").SettingsState;
    sidebar: import("./sidebar").SidebarState;
    surcharges: import("./surcharges").SurchargesState;
    taxes: import("./taxes").TaxesState;
    idle: import("./idle").IdleState;
    tags: import("./tags").TagsState;
    revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => number[]) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: Cart) => number[];
    memoizedResultFunc: ((resultFuncArgs_0: Cart) => number[]) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => number[];
    dependencies: [(state: AppState) => Cart];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartQuantity: ((state: {
    alerts: import("@open-tender/types").Alerts;
    allergens: import("./allergens").AllergensState;
    arrivals: import("./arrivals").ArrivalsState;
    cartSummary: import("./cartSummary").CartSummaryState;
    checkout: import("./checkout").CheckoutState;
    config: import("./config").ConfigState;
    customer: import("./customer").CustomerState;
    customerIdentify: import("./customerIdentify").CustomerIdentifyState;
    deals: import("./deals").DealsState;
    discounts: import("./discounts").DiscountsState;
    errorAlerts: import("./errorAlerts").ErrorAlertsState;
    kds: import("./kds").KdsState;
    kiosk: import("./kiosk").KioskState;
    menu: import("./menu").MenuState;
    menuPages: import("./menuPages").MenuPagesState;
    modal: import("./modal").ModalState;
    notifications: import("@open-tender/types").Notifications;
    offlineAuths: import("./offlineAuths").OfflineAuthsState;
    order: OrderState;
    pos: import("./pos").PosState;
    punches: import("./punches").PunchesState;
    refund: import("./refund").RefundState;
    sendReceipt: import("./sendReceipt").SendReceiptState;
    settings: import("./settings").SettingsState;
    sidebar: import("./sidebar").SidebarState;
    surcharges: import("./surcharges").SurchargesState;
    taxes: import("./taxes").TaxesState;
    idle: import("./idle").IdleState;
    tags: import("./tags").TagsState;
    revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => number) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: Cart) => number;
    memoizedResultFunc: ((resultFuncArgs_0: Cart) => number) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => number;
    dependencies: [(state: AppState) => Cart];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartTotal: ((state: {
    alerts: import("@open-tender/types").Alerts;
    allergens: import("./allergens").AllergensState;
    arrivals: import("./arrivals").ArrivalsState;
    cartSummary: import("./cartSummary").CartSummaryState;
    checkout: import("./checkout").CheckoutState;
    config: import("./config").ConfigState;
    customer: import("./customer").CustomerState;
    customerIdentify: import("./customerIdentify").CustomerIdentifyState;
    deals: import("./deals").DealsState;
    discounts: import("./discounts").DiscountsState;
    errorAlerts: import("./errorAlerts").ErrorAlertsState;
    kds: import("./kds").KdsState;
    kiosk: import("./kiosk").KioskState;
    menu: import("./menu").MenuState;
    menuPages: import("./menuPages").MenuPagesState;
    modal: import("./modal").ModalState;
    notifications: import("@open-tender/types").Notifications;
    offlineAuths: import("./offlineAuths").OfflineAuthsState;
    order: OrderState;
    pos: import("./pos").PosState;
    punches: import("./punches").PunchesState;
    refund: import("./refund").RefundState;
    sendReceipt: import("./sendReceipt").SendReceiptState;
    settings: import("./settings").SettingsState;
    sidebar: import("./sidebar").SidebarState;
    surcharges: import("./surcharges").SurchargesState;
    taxes: import("./taxes").TaxesState;
    idle: import("./idle").IdleState;
    tags: import("./tags").TagsState;
    revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => number) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: Cart) => number;
    memoizedResultFunc: ((resultFuncArgs_0: Cart) => number) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => number;
    dependencies: [(state: AppState) => Cart];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartTotals: ((state: {
    alerts: import("@open-tender/types").Alerts;
    allergens: import("./allergens").AllergensState;
    arrivals: import("./arrivals").ArrivalsState;
    cartSummary: import("./cartSummary").CartSummaryState;
    checkout: import("./checkout").CheckoutState;
    config: import("./config").ConfigState;
    customer: import("./customer").CustomerState;
    customerIdentify: import("./customerIdentify").CustomerIdentifyState;
    deals: import("./deals").DealsState;
    discounts: import("./discounts").DiscountsState;
    errorAlerts: import("./errorAlerts").ErrorAlertsState;
    kds: import("./kds").KdsState;
    kiosk: import("./kiosk").KioskState;
    menu: import("./menu").MenuState;
    menuPages: import("./menuPages").MenuPagesState;
    modal: import("./modal").ModalState;
    notifications: import("@open-tender/types").Notifications;
    offlineAuths: import("./offlineAuths").OfflineAuthsState;
    order: OrderState;
    pos: import("./pos").PosState;
    punches: import("./punches").PunchesState;
    refund: import("./refund").RefundState;
    sendReceipt: import("./sendReceipt").SendReceiptState;
    settings: import("./settings").SettingsState;
    sidebar: import("./sidebar").SidebarState;
    surcharges: import("./surcharges").SurchargesState;
    taxes: import("./taxes").TaxesState;
    idle: import("./idle").IdleState;
    tags: import("./tags").TagsState;
    revenueCenter: import("./revenueCenter").RevenueCenterState;
}) => {
    count: number;
    total: number;
}) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: Cart) => {
        count: number;
        total: number;
    };
    memoizedResultFunc: ((resultFuncArgs_0: Cart) => {
        count: number;
        total: number;
    }) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => {
        count: number;
        total: number;
    };
    dependencies: [(state: AppState) => Cart];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCartCounts: (state: AppState) => CartCounts;
export declare const selectCanOrder: (state: AppState) => 0 | RequestedAt | null;
export declare const selectCartValidate: (state: AppState) => {
    revenueCenterId: number | null;
    serviceType: ServiceType | null;
    requestedAt: RequestedAt;
    cart: Cart;
};
export declare const orderReducer: import("redux").Reducer<OrderState>;
