import { Allergens, Customer, CustomerEndpoints, CustomerEntities, Discounts, Favorites, GiftCards, LoyaltyPrograms, LoyaltyProgramSummary, Orders, RequestError, RequestStatus } from '@open-tender/types';
import { AppState } from '../app';
export interface CustomerState {
    account: Customer | null;
    deals: Discounts;
    allergens: Allergens;
    favorites: Favorites;
    giftCards: GiftCards;
    loyalty: LoyaltyPrograms;
    orders: Orders;
    rewards: Discounts;
    loading: RequestStatus;
    error: RequestError;
}
export declare enum CustomerActionType {
    FetchCustomer = "customer/fetchCustomer"
}
export declare const fetchCustomer: import("@reduxjs/toolkit").AsyncThunk<CustomerEntities, {
    customerId: number;
    endpoints: CustomerEndpoints;
}, {
    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 resetCustomer: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"customer/resetCustomer">;
export declare const selectCustomer: (state: AppState) => CustomerState;
export declare const selectCustomerAccount: (state: AppState) => Customer | null;
export declare const selectCustomerDeals: (state: AppState) => Discounts;
export declare const selectCustomerFavorites: (state: AppState) => Favorites;
export declare const selectCustomerGiftCards: (state: AppState) => GiftCards;
export declare const selectCustomerOrders: (state: AppState) => Orders;
export declare const selectCustomerRewards: (state: AppState) => Discounts;
export declare const selectCustomerLoyaltySummary: ((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: 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: import("./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;
}) => LoyaltyProgramSummary | null) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: import("@open-tender/types").LoyaltyProgram) => LoyaltyProgramSummary | null;
    memoizedResultFunc: ((resultFuncArgs_0: import("@open-tender/types").LoyaltyProgram) => LoyaltyProgramSummary | null) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => LoyaltyProgramSummary | null;
    dependencies: [(state: AppState) => import("@open-tender/types").LoyaltyProgram];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCustomerLoyalty: (state: AppState) => LoyaltyPrograms;
export declare const selectCustomerLoyaltyProgram: ((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: 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: import("./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;
}) => {
    program: import("@open-tender/types").LoyaltyProgram | null;
    loading: RequestStatus;
    error: RequestError;
}) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: CustomerState) => {
        program: import("@open-tender/types").LoyaltyProgram | null;
        loading: RequestStatus;
        error: RequestError;
    };
    memoizedResultFunc: ((resultFuncArgs_0: CustomerState) => {
        program: import("@open-tender/types").LoyaltyProgram | null;
        loading: RequestStatus;
        error: RequestError;
    }) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => {
        program: import("@open-tender/types").LoyaltyProgram | null;
        loading: RequestStatus;
        error: RequestError;
    };
    dependencies: [(state: AppState) => CustomerState];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCustomerPointsProgram: ((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: 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: import("./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;
}) => import("@open-tender/types").LoyaltyProgram | null) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: LoyaltyPrograms, resultFuncArgs_1: import("@open-tender/types").OrderType | null) => import("@open-tender/types").LoyaltyProgram | null;
    memoizedResultFunc: ((resultFuncArgs_0: LoyaltyPrograms, resultFuncArgs_1: import("@open-tender/types").OrderType | null) => import("@open-tender/types").LoyaltyProgram | null) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => import("@open-tender/types").LoyaltyProgram | null;
    dependencies: [(state: AppState) => LoyaltyPrograms, (state: AppState) => import("@open-tender/types").OrderType | null];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectCustomerPoints: ((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: 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: import("./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;
}) => {
    name: string;
    points: `${number}.${number}` | null;
} | null) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: import("@open-tender/types").LoyaltyProgram | null) => {
        name: string;
        points: `${number}.${number}` | null;
    } | null;
    memoizedResultFunc: ((resultFuncArgs_0: import("@open-tender/types").LoyaltyProgram | null) => {
        name: string;
        points: `${number}.${number}` | null;
    } | null) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => {
        name: string;
        points: `${number}.${number}` | null;
    } | null;
    dependencies: [((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: 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: import("./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;
    }) => import("@open-tender/types").LoyaltyProgram | null) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    } & {
        resultFunc: (resultFuncArgs_0: LoyaltyPrograms, resultFuncArgs_1: import("@open-tender/types").OrderType | null) => import("@open-tender/types").LoyaltyProgram | null;
        memoizedResultFunc: ((resultFuncArgs_0: LoyaltyPrograms, resultFuncArgs_1: import("@open-tender/types").OrderType | null) => import("@open-tender/types").LoyaltyProgram | null) & {
            clearCache: () => void;
            resultsCount: () => number;
            resetResultsCount: () => void;
        };
        lastResult: () => import("@open-tender/types").LoyaltyProgram | null;
        dependencies: [(state: AppState) => LoyaltyPrograms, (state: AppState) => import("@open-tender/types").OrderType | null];
        recomputations: () => number;
        resetRecomputations: () => void;
        dependencyRecomputations: () => number;
        resetDependencyRecomputations: () => void;
    } & {
        argsMemoize: typeof import("reselect").weakMapMemoize;
        memoize: typeof import("reselect").weakMapMemoize;
    }];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const selectPointsProgram: ((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: 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: import("./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;
}) => import("@open-tender/types").LoyaltyProgram | null) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
} & {
    resultFunc: (resultFuncArgs_0: import("@open-tender/types").OrderType | null, resultFuncArgs_1: import("@open-tender/types").LoyaltyProgram | null) => import("@open-tender/types").LoyaltyProgram | null;
    memoizedResultFunc: ((resultFuncArgs_0: import("@open-tender/types").OrderType | null, resultFuncArgs_1: import("@open-tender/types").LoyaltyProgram | null) => import("@open-tender/types").LoyaltyProgram | null) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    };
    lastResult: () => import("@open-tender/types").LoyaltyProgram | null;
    dependencies: [(state: AppState) => import("@open-tender/types").OrderType | null, ((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: 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: import("./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;
    }) => import("@open-tender/types").LoyaltyProgram | null) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
    } & {
        resultFunc: (resultFuncArgs_0: LoyaltyPrograms, resultFuncArgs_1: import("@open-tender/types").OrderType | null) => import("@open-tender/types").LoyaltyProgram | null;
        memoizedResultFunc: ((resultFuncArgs_0: LoyaltyPrograms, resultFuncArgs_1: import("@open-tender/types").OrderType | null) => import("@open-tender/types").LoyaltyProgram | null) & {
            clearCache: () => void;
            resultsCount: () => number;
            resetResultsCount: () => void;
        };
        lastResult: () => import("@open-tender/types").LoyaltyProgram | null;
        dependencies: [(state: AppState) => LoyaltyPrograms, (state: AppState) => import("@open-tender/types").OrderType | null];
        recomputations: () => number;
        resetRecomputations: () => void;
        dependencyRecomputations: () => number;
        resetDependencyRecomputations: () => void;
    } & {
        argsMemoize: typeof import("reselect").weakMapMemoize;
        memoize: typeof import("reselect").weakMapMemoize;
    }];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
} & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
};
export declare const customerReducer: import("redux").Reducer<CustomerState>;
