import { Date, Time } from '../../utils/time'; import { DayOfWeek } from './types'; import React from 'react'; export * from './types'; export declare enum Interval { Minute_1 = "Minute_1", Minutes_2 = "Minutes_2", Minutes_3 = "Minutes_3", Minutes_4 = "Minutes_4", Minutes_5 = "Minutes_5", Minutes_10 = "Minutes_10", Minutes_15 = "Minutes_15", Minutes_20 = "Minutes_20", Minutes_30 = "Minutes_30", Hour = "Hour", Hour_2 = "Hour_2", Hour_4 = "Hour_4", Day = "Day", Week = "Week", Month = "Month", Year = "Year" } interface ICadence { interval: Interval; } export interface MinuteCadence extends ICadence { interval: Interval.Minute_1 | Interval.Minutes_2 | Interval.Minutes_3 | Interval.Minutes_4 | Interval.Minutes_5 | Interval.Minutes_10 | Interval.Minutes_15 | Interval.Minutes_20 | Interval.Minutes_30 | Interval.Hour | Interval.Hour_2 | Interval.Hour_4; startAtTime: Time; endAtTime?: Time; daysOfTheWeek?: DayOfWeek[]; } export interface DayCadence extends ICadence { interval: Interval.Day; startAtTimes: Time[]; daysOfTheWeek?: DayOfWeek[]; } export declare const parseDayOfWeek: (index: number) => DayOfWeek; export declare enum MonthOfYear { January = "January", February = "February", March = "March", April = "April", May = "May", June = "June", July = "July", August = "August", September = "September", October = "October", November = "November", December = "December" } export declare const parseDateTimeString: (v: string) => [Date, Time]; export declare const monthOptions: MonthOfYear[]; export declare const parseTimeString: (v: string) => Time; export declare const getDaysInMonth: (m: MonthOfYear) => number; export declare const getMonthNumber: (month: MonthOfYear) => number; export interface WeekCadence extends ICadence { interval: Interval.Week; dayOfWeek: DayOfWeek; timeToDisplay: Time; } declare type DayOfMonth = number; export interface MonthCadence extends ICadence { interval: Interval.Month; dayOfMonth: DayOfMonth; time: Time; } export interface YearCadence extends ICadence { interval: Interval.Year; day: DayOfMonth; month: MonthOfYear; time: Time; } export declare type Cadence = MinuteCadence | DayCadence | WeekCadence | MonthCadence | YearCadence; export declare enum WeekdayVsWeekendSelection { WeekdaysOnly = "weekdays", WeekendsOnly = "weekends", Either = "either" } interface ICadencePickerProps { cadence?: Cadence; onChange: (c: Cadence, timezone: string | null) => any; intervals?: Interval[]; allowMultipleTimes?: boolean; allowWeekdaySelection?: boolean; disableStartTime?: boolean; disableEndTime?: boolean; defaultStartTime?: { hour: string; minutes: string; amPm: string; }; defaultEndTime?: { hour: string; minutes: string; amPm: string; }; defaultDays?: Array; defaultInterval?: Interval; defaultShowOn?: { month: MonthOfYear; day: DayOfMonth; }; disableShowOn?: boolean; hideShowOn?: boolean; hideFrequencySelector?: boolean; yearlyString?: string; isTwentyFourHourTime?: boolean; } declare type CadencePickerProps = ICadencePickerProps; export declare const CadencePicker: React.FC; interface ITimezoneSetter { onReceivedTimezone?: (timezone: string) => any; } declare type TimezoneSetterProps = ITimezoneSetter; export declare const TimezoneSetter: React.FC;