import { ChannelType, DeviceColorScheme, DeviceFontSize, DateString, ItemTypes, KdsOrderType, KdsStationCounts, KdsView, Order, OrderCounts, Orders, OrdersAndStationCounts, OrderUpdate, PrepStation, PrepStations, PrepStatus, ReceiptType, RequestError, RequestStatus, TicketStatus } from '@open-tender/types';
import { AppState } from '../app';
export interface KdsState {
    terminalId: number | null;
    itemTypes: ItemTypes | null;
    prepStations: PrepStations;
    prepStationId: number | null;
    orderType: KdsOrderType;
    columns: number;
    boxes: number;
    cardWidth: number;
    fontSize: DeviceFontSize;
    colorScheme: DeviceColorScheme;
    view: KdsView | null;
    page: number;
    search: string | null;
    businessDate: DateString | null;
    summary: boolean;
    allDay: boolean;
    allDayMods: boolean;
    orders: Orders;
    loading: RequestStatus;
    error: RequestError;
    order: Order | null;
    counts: OrderCounts;
    stationCounts: KdsStationCounts | null;
}
export declare enum KdsActionType {
    FetchKdsOrders = "kds/fetchKdsOrders",
    UpdateKdsOrder = "kds/updateKdsOrder",
    PrintKdsOrder = "kds/printKdsOrder",
    PrintTickets = "kds/printTickets",
    ResetTickets = "kds/resetTickets",
    PrintTicket = "kds/printTicket",
    UpdateTicket = "kds/updateTicket",
    ResetTicket = "kds/resetTicket",
    DoneTicket = "kds/doneTicket",
    CompleteTicket = "kds/completeTicket"
}
export interface OrdersArgs {
    businessDate?: DateString | null;
    receiptType?: ReceiptType | 'BOTH';
    channelType?: ChannelType[] | null;
    prepStatus?: PrepStatus[] | null;
    search?: string | null;
    sortBy?: 'requested_at' | 'expected_at' | 'fire_at';
    sortDirection?: 'ASC' | 'DESC';
    parentOrderId?: string;
}
export interface OrdersParams {
    business_date?: DateString;
    receipt_type?: ReceiptType | 'BOTH';
    channel_type?: string;
    prep_status?: string;
    search?: string;
    sort_by?: 'requested_at' | 'expected_at' | 'fire_at';
    sort_direction?: 'ASC' | 'DESC';
    parent_receipt_uuid?: string;
}
export declare const fetchKdsOrders: import("@reduxjs/toolkit").AsyncThunk<OrdersAndStationCounts, OrdersArgs, {
    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 updateKdsOrder: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    data: OrderUpdate;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const printKdsOrder: import("@reduxjs/toolkit").AsyncThunk<void, string, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const printTickets: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    status?: TicketStatus | undefined;
    ticketNos?: number[] | undefined;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const updateTickets: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    status: TicketStatus;
    ticketNos?: number[] | undefined;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const resetTickets: import("@reduxjs/toolkit").AsyncThunk<void, string, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const printTicket: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    ticketNo: number;
    status?: TicketStatus | undefined;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const updateTicket: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    ticketNo: number;
    status: TicketStatus;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const resetTicket: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    ticketNo: number;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const doneTicket: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    ticketNo: number;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const completeTicket: import("@reduxjs/toolkit").AsyncThunk<void, {
    orderId: string;
    ticketNo: number;
}, {
    state: AppState;
    dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/resetkds">, setKdsTerminalId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsTerminalId">, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsItemTypes">, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPrepStations">, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPrepStationId">, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsOrderType">, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsColumns">, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsBoxes">, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsCardWidth">, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsFontSize">, setKdsColorScheme: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsColorScheme">, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsPage">, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsView">, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsBusinessDate">, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsSearch">, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsSummary">, toggleKdsAllDay: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsAllDay">, toggleKdsAllDayMods: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"kds/toggleKdsAllDayMods">, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/setKdsOrder">, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "kds/replaceKdsOrder">;
export declare const selectKds: (state: AppState) => KdsState;
export declare const selectKdsTerminal: (state: AppState) => import("@open-tender/types").KdsTerminal | null | undefined;
export declare const selectKdsItemTypes: (state: AppState) => ItemTypes | null;
export declare const selectKdsPrepStations: (state: AppState) => PrepStations;
export declare const selectKdsPrepStationId: (state: AppState) => number | null;
export declare const selectKdsPrepStation: (state: AppState) => PrepStation | null;
export declare const selectKdsPrepType: (state: AppState) => import("@open-tender/types").PrepStationPrepType | null;
export declare const selectKdsOrderType: (state: AppState) => KdsOrderType;
export declare const selectKdsColumns: (state: AppState) => number;
export declare const selectKdsBoxes: (state: AppState) => number;
export declare const selectKdsCardWidth: (state: AppState) => number;
export declare const selectKdsFontSize: (state: AppState) => DeviceFontSize;
export declare const selectKdsColorScheme: (state: AppState) => DeviceColorScheme;
export declare const selectKdsSummary: (state: AppState) => boolean;
export declare const selectKdsAllDay: (state: AppState) => boolean;
export declare const selectKdsAllDayMods: (state: AppState) => boolean;
export declare const selectKdsPage: (state: AppState) => number;
export declare const selectKdsPageIndex: (state: AppState) => number;
export declare const selectKdsView: (state: AppState) => KdsView | null;
export declare const selectKdsBusinessDate: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}` | null;
export declare const selectKdsOrder: (state: AppState) => Order | null;
export declare const selectKdsOrders: (state: AppState) => {
    orders: Orders;
    loading: RequestStatus;
    error: RequestError;
};
export declare const selectKdsCurrentOrders: (state: AppState) => {
    orders: Order[];
    loading: RequestStatus;
    error: RequestError;
};
export declare const selectKdsCurrentCount: (state: AppState) => number;
export declare const selectKdsFutureOrders: (state: AppState) => {
    orders: Order[];
    loading: RequestStatus;
    error: RequestError;
};
export declare const selectKdsFutureCount: (state: AppState) => number;
export declare const selectKdsPrepStationOrders: (state: AppState) => Orders;
export declare const selectKdsPrepStationAllDay: (state: AppState) => Record<string, import("@open-tender/types").OrderItemCount>;
export declare const selectKdsPrepStationAllIncomplete: (state: AppState) => Orders;
export declare const selectKdsPrepStationAllIncompleteToday: (state: AppState) => Orders;
export declare const selectKdsOrdersCounts: (state: AppState) => {
    current: Record<string, number> | null;
    future: Record<string, number> | null;
    qa: Record<string, number> | null;
};
export declare const kdsReducer: import("redux").Reducer<KdsState>;
