import { AppState } from '../../app';
import { GroupOrder, GroupOrderExpanded, GroupOrdersExpanded, RequestError, RequestStatus } from '@open-tender/types';
import { OrderState } from '../order';
export interface CustomerGroupOrdersState {
    entities: GroupOrdersExpanded;
    error: RequestError;
    loading: RequestStatus;
    lookup: {
        [key: number | string]: number;
    };
    closed?: boolean;
}
export declare enum CustomerGroupOrdersActionType {
    FetchCustomerGroupOrders = "customer/fetchCustomerGroupOrders",
    FetchCustomerGroupOrder = "customer/fetchCustomerGroupOrder",
    RemoveCustomerGroupOrder = "customer/removeCustomerGroupOrder",
    ReopenGroupOrder = "customer/reopenGroupOrder",
    UpdateCustomerGroupOrder = "customer/updateCustomerGroupOrder",
    CloseCustomerGroupOrder = "customer/closeCustomerGroupOrder"
}
export declare const fetchCustomerGroupOrders: import("@reduxjs/toolkit").AsyncThunk<GroupOrdersExpanded, void, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrderExpanded, number, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const makeCartData: (order: OrderState, spendingLimit?: string) => {
    address: import("@open-tender/types").Address | null;
    revenue_center_id: number;
    service_type: import("@open-tender/types").ServiceType | null;
    requested_at: import("@open-tender/types").RequestedAt | null;
    cart: {
        id: number;
        quantity: number;
        groups: import("@open-tender/types").SimpleCartGroups;
        made_for: string;
        notes: string;
    }[];
} | {
    spending_limit: string;
    address: import("@open-tender/types").Address | null;
    revenue_center_id: number;
    service_type: import("@open-tender/types").ServiceType | null;
    requested_at: import("@open-tender/types").RequestedAt | null;
    cart: {
        id: number;
        quantity: number;
        groups: import("@open-tender/types").SimpleCartGroups;
        made_for: string;
        notes: string;
    }[];
} | null;
export declare const updateCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<void, {
    cartId: number;
    callback?: (() => void) | undefined;
}, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const closeGroupOrder: import("@reduxjs/toolkit").AsyncThunk<boolean, {
    cartId: number;
    closed: boolean;
}, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const removeCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrdersExpanded, {
    cartId: number;
    callback?: (() => void) | undefined;
}, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const reopenGroupOrder: import("@reduxjs/toolkit").AsyncThunk<(GroupOrder | undefined)[], Partial<GroupOrder>, {
    state: AppState;
    rejectValue: RequestError;
    dispatch?: import("redux").Dispatch<import("redux").AnyAction> | undefined;
    extra?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const resetCustomerGroupOrders: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"groupOrders/resetCustomerGroupOrders">, resetCustomerGroupOrdersError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"groupOrders/resetCustomerGroupOrdersError">, setCustomerGroupOrders: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "groupOrders/setCustomerGroupOrders">;
export declare const selectCustomerGroupOrders: (state: AppState) => CustomerGroupOrdersState;
export declare const customerGroupOrdersReducer: import("redux").Reducer<CustomerGroupOrdersState, import("redux").AnyAction>;
