import { BookingAttributes, BookingOptions, GroupedFlights, ProductAttributes } from '../../types';
import {
  AirlineBookingPackageOption,
  AirportBookingPackageOption,
  BookingAirlineGroup,
  BookingAirportGroup,
  BookingOptionGroup,
  BookingOptionPax,
  BookingOptionUnit,
  BookingPackage,
  BookingPackageRoom,
  BookingTravelAgent,
  CountryItem,
  PerBookingPackageOption
} from '@qite/tide-client/build/types';
import { BookingStep } from './constants';
export interface BookingState {
  officeId: number;
  languageCode: string;
  productAttributes?: ProductAttributes;
  bookingAttributes?: BookingAttributes;
  calculateDeposit: boolean;
  showCommission?: boolean;
  bookingNumber?: string;
  isRetry: boolean;
  package?: BookingPackage;
  agents?: BookingTravelAgent[];
  isBusy: boolean;
  skipPaymentWithAgent: boolean;
  generatePaymentUrl: boolean;
  isUnavailable?: boolean;
  tagIds?: number[];
  agentAdressId?: number;
  remarks?: string;
  voucherCodes?: string[];
  bookingOptions: BookingOptions;
  bookingType: string;
  currentStep: BookingStep;
  translations?: {
    language: string;
    value: any;
  }[];
  accommodationViewId?: number;
  accommodationViews?: {
    [key: string]: string;
  };
  isOption?: boolean;
  travelersFirstStep: boolean;
  isFetching?: boolean;
  hasMounted: boolean;
  countries?: CountryItem[];
}
export declare const fetchPackage: import('@reduxjs/toolkit').AsyncThunk<
  void,
  void,
  {
    state?: unknown;
    dispatch?: import('@reduxjs/toolkit').ThunkDispatch<unknown, unknown, import('@reduxjs/toolkit').UnknownAction>;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
  }
>;
export declare const fetchCountries: import('@reduxjs/toolkit').AsyncThunk<
  import('@qite/tide-client/build/types').PageResult<CountryItem>,
  void,
  {
    state?: unknown;
    dispatch?: import('@reduxjs/toolkit').ThunkDispatch<unknown, unknown, import('@reduxjs/toolkit').UnknownAction>;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
  }
>;
export declare const setOfficeId: import('@reduxjs/toolkit').ActionCreatorWithPayload<number, 'booking/setOfficeId'>,
  setLanguageCode: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, 'booking/setLanguageCode'>,
  setTranslations: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'booking/setTranslations'>,
  setBookingOptions: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingOptions, 'booking/setBookingOptions'>,
  setBookingType: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, 'booking/setBookingType'>,
  setProductAttributes: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<ProductAttributes | undefined, 'booking/setProductAttributes'>,
  setBookingAttributes: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<BookingAttributes | undefined, 'booking/setBookingAttributes'>,
  setCalculateDeposit: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setCalculateDeposit'>,
  setShowCommission: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<boolean | undefined, 'booking/setShowCommission'>,
  setBookingNumber: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, 'booking/setBookingNumber'>,
  setIsRetry: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setIsRetry'>,
  setFetchingPackage: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setFetchingPackage'>,
  setIsFetching: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setIsFetching'>,
  setHasMounted: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setHasMounted'>,
  setPackage: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<BookingPackage | undefined, 'booking/setPackage'>,
  setPackageRooms: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingPackageRoom[], 'booking/setPackageRooms'>,
  setPackageOptionPax: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingOptionPax[], 'booking/setPackageOptionPax'>,
  setPackageOptionUnits: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingOptionUnit[], 'booking/setPackageOptionUnits'>,
  setPackageGroups: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingOptionGroup<PerBookingPackageOption>[], 'booking/setPackageGroups'>,
  setSkipPayment: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setSkipPayment'>,
  setGeneratePaymentUrl: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setGeneratePaymentUrl'>,
  setTagIds: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<number[] | undefined, 'booking/setTagIds'>,
  setAgentAdressId: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<number | undefined, 'booking/setAgentAdressId'>,
  setBookingRemarks: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, 'booking/setBookingRemarks'>,
  setVoucherCodes: import('@reduxjs/toolkit').ActionCreatorWithPayload<string[], 'booking/setVoucherCodes'>,
  setCurrentStep: import('@reduxjs/toolkit').ActionCreatorWithPayload<BookingStep, 'booking/setCurrentStep'>,
  setPackageAirlineGroups: import('@reduxjs/toolkit').ActionCreatorWithPayload<
    BookingAirlineGroup<AirlineBookingPackageOption>[],
    'booking/setPackageAirlineGroups'
  >,
  setPackageAirportGroups: import('@reduxjs/toolkit').ActionCreatorWithPayload<
    BookingAirportGroup<AirportBookingPackageOption>[],
    'booking/setPackageAirportGroups'
  >,
  setFlights: import('@reduxjs/toolkit').ActionCreatorWithPayload<GroupedFlights, 'booking/setFlights'>,
  setAccommodationViewId: import('@reduxjs/toolkit').ActionCreatorWithPayload<number, 'booking/setAccommodationViewId'>,
  setIsOption: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setIsOption'>,
  setTravelersFirstStep: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setTravelersFirstStep'>,
  setIsUnavailable: import('@reduxjs/toolkit').ActionCreatorWithPayload<boolean, 'booking/setIsUnavailable'>;
declare const _default: import('@reduxjs/toolkit').Reducer<BookingState>;
export default _default;
