export interface TimeFrameProps {
  /** Text to be display above the FileUpload component,  */
  label?: string,
  /** Array of timeframe options (today, yesterday, etc),  */
  options?: {}[],
  /** Selected option (given by hook)*/
  option: {label: string,id: string} | undefined,
  /** Function that changes the option selection (given by hook)*/
  onChangeSelect: (value: any) => void,
  /** Text inside SelectMenu input when user has not made a selection*/
  placeholder?: string,
  isRequired?: boolean,
  requiredMessage?: string,
  titleStyles?: {},
  /** If true, the custom option renders calendar with two months sidy by side for user selection of dates*/
  customWithTwoMonths?: boolean,
  /** If true, below calendar field the options to select start and end time is rendered*/
  withTime?: boolean,
  /** Start date of the date range*/
  startDate?: moment.Moment | undefined,
  /** End date of the date range*/
  endDate?: moment.Moment | undefined,
  /** Minimum date allowed to be selected by user*/
  minDate?: moment.Moment,
  /** Maximum date allowed to be selected by user*/
  maxDate?: moment.Moment,
  /** Number of days that are allowed to be selected after the StartDate */
  customRangeDate?: number,
  /** Function that changes the date selection made with de calendar*/
  onChangeDateRange: (selectedStartDate: moment.Moment, selectedEndDate: moment.Moment) => void,
  /** String to format the dates for user to see (eg. "MM/DD/YYYY hh:mm A)*/
  dateFormat?: string,
  /** If true, a switch that toggle between advanced filter options or inputs for the user to select the time is rendered*/
  filterSwitch?: boolean,
  /** Function that changes the time to the dates selected (given by hook)*/
  onChangeTime: (startTime: moment.Moment | null, endTime: moment.Moment | null) => void,
  /** If true, the link for advanced filter options is rendered (given by hook)*/
  advancedFilter: boolean,
  /** Function to toggle the firterSwitch (given by hook)*/
  setAdvancedFilter: (value: boolean) => void,
  /** function to signal the rendering of outside sidePanel or component to display advanced filter options*/
  onAdvancedFilter?: () => void,
  /** Name of class to extend css properties to the select component */
  className?: string,
  /** Name of class to extend css properties to component */
  componentClassName?: string
  /** */
  style?: React.CSSProperties;
  /** If true, border of component is turned red and error message is displayed */
  isValid: boolean,
  /** Sets the validity of the timeframe selection */
  setIsValid: (value: boolean) => void
  /** If true, when users select custom option the modal for select date range will open automatically*/
  openDateRangePickerModalAutomatically: boolean,
}