import { MobileFilterType, Room, TravelerType, TypeaheadOption } from '../types';
import { ReactNode } from 'react';
import { PickerItem } from '../../shared/types';
import { PortalQsmType } from '@qite/tide-client';
export interface QSMState {
  qsmType?: PortalQsmType;
  selectedOrigin?: string;
  selectedDestination?: string;
  selectedAirport?: string;
  fromDate?: string;
  toDate?: string;
  travelers: any[];
  mobileFilterType: MobileFilterType;
  searchResults: TypeaheadOption[];
  activeSearchField: string | null;
  activeSearchFieldProps: {
    fieldKey: string;
    label: string;
    placeholder: string;
    value: string;
    options: TypeaheadOption[];
  } | null;
  mobileDatePickerMode: 'range' | 'single';
  minDate?: string;
  maxDate?: string;
  dateFlexibility?: {
    name: string;
    before: number;
    after: number;
  }[];
  datesIcon?: ReactNode;
  selectedFlexRange?: {
    before: number;
    after: number;
  };
  travelTypes: PickerItem[];
  tripType: 'oneway' | 'roundtrip' | 'openjaw';
  selectedTravelType?: string;
  travelClasses: PickerItem[];
  selectedTravelClass?: string;
  selectedNationality?: string;
  defaultTravelers: number;
  maxTravelers: number;
  maxChildAge: number;
  maxInfantAge: number;
  adults: number;
  kids: number;
  babies: number;
  rooms: Room[];
  [key: string]: any;
}
export declare const setSelectedQsmType: import('@reduxjs/toolkit').ActionCreatorWithPayload<PortalQsmType, 'qsm/setSelectedQsmType'>,
  setOrigin: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, 'qsm/setOrigin'>,
  setDestination: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, 'qsm/setDestination'>,
  setAirport: import('@reduxjs/toolkit').ActionCreatorWithPayload<string, 'qsm/setAirport'>,
  setFromDate: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string | undefined, 'qsm/setFromDate'>,
  setToDate: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string | undefined, 'qsm/setToDate'>,
  setTravelers: import('@reduxjs/toolkit').ActionCreatorWithPayload<any[], 'qsm/setTravelers'>,
  setMobileFilterType: import('@reduxjs/toolkit').ActionCreatorWithPayload<MobileFilterType, 'qsm/setMobileFilterType'>,
  closeMobileFilter: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<'qsm/closeMobileFilter'>,
  setActiveSearchField: import('@reduxjs/toolkit').ActionCreatorWithPayload<string | null, 'qsm/setActiveSearchField'>,
  setActiveSearchFieldProps: import('@reduxjs/toolkit').ActionCreatorWithPayload<
    {
      fieldKey: string;
      label: string;
      placeholder: string;
      value: string;
      options: TypeaheadOption[];
    },
    'qsm/setActiveSearchFieldProps'
  >,
  setSearchResults: import('@reduxjs/toolkit').ActionCreatorWithPayload<TypeaheadOption[], 'qsm/setSearchResults'>,
  setMobileDatePickerMode: import('@reduxjs/toolkit').ActionCreatorWithPayload<'range' | 'single', 'qsm/setMobileDatePickerMode'>,
  setMinDate: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string | undefined, 'qsm/setMinDate'>,
  setMaxDate: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<string | undefined, 'qsm/setMaxDate'>,
  setDateFlexibility: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<
    | {
        name: string;
        before: number;
        after: number;
      }[]
    | undefined,
    'qsm/setDateFlexibility'
  >,
  setSelectedFlexRange: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<
    | {
        before: number;
        after: number;
      }
    | undefined,
    'qsm/setSelectedFlexRange'
  >,
  setTripType: import('@reduxjs/toolkit').ActionCreatorWithPayload<'oneway' | 'roundtrip' | 'openjaw', 'qsm/setTripType'>,
  setTravelTypes: import('@reduxjs/toolkit').ActionCreatorWithPayload<PickerItem[], 'qsm/setTravelTypes'>,
  setSelectedTravelType: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/setSelectedTravelType'>,
  setTravelClasses: import('@reduxjs/toolkit').ActionCreatorWithPayload<PickerItem[], 'qsm/setTravelClasses'>,
  setSelectedTravelClass: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/setSelectedTravelClass'>,
  setSelectedNationality: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/setSelectedNationality'>,
  setDefaultTravelers: import('@reduxjs/toolkit').ActionCreatorWithPayload<number, 'qsm/setDefaultTravelers'>,
  setMaxTravelers: import('@reduxjs/toolkit').ActionCreatorWithPayload<number, 'qsm/setMaxTravelers'>,
  setMaxChildAge: import('@reduxjs/toolkit').ActionCreatorWithPayload<number, 'qsm/setMaxChildAge'>,
  setAdults: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/setAdults'>,
  setKids: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/setKids'>,
  setBabies: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/setBabies'>,
  setRooms: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/setRooms'>,
  addRoom: import('@reduxjs/toolkit').ActionCreatorWithoutPayload<'qsm/addRoom'>,
  removeRoom: import('@reduxjs/toolkit').ActionCreatorWithPayload<any, 'qsm/removeRoom'>,
  updateRoomTraveler: import('@reduxjs/toolkit').ActionCreatorWithPayload<
    {
      roomIndex: number;
      type: TravelerType;
      value: number;
    },
    'qsm/updateRoomTraveler'
  >,
  setMaxInfantAge: import('@reduxjs/toolkit').ActionCreatorWithPayload<number, 'qsm/setMaxInfantAge'>,
  setDatesIcon: import('@reduxjs/toolkit').ActionCreatorWithOptionalPayload<ReactNode, 'qsm/setDatesIcon'>,
  setFieldValue: import('@reduxjs/toolkit').ActionCreatorWithPayload<
    {
      fieldKey: string;
      value: any;
    },
    'qsm/setFieldValue'
  >,
  hydrateQsmState: import('@reduxjs/toolkit').ActionCreatorWithPayload<Partial<QSMState>, 'qsm/hydrateQsmState'>;
declare const _default: import('@reduxjs/toolkit').Reducer<QSMState>;
export default _default;
