import { DateString, FirstTime, GroupOrderPrepTime, GroupOrderTime, Holidays, ISOString, ISOStringOffset, Order, OrderTime, OrderTimeWithDate, RequestedAt, RevenueCenter, ServiceType, Timezone, TimezonePython, ValidTimes, Weekday } from '@open-tender/types';
export declare const DATE = "yyyy-MM-dd";
export declare const TIME = "h:mma";
export declare const DATETIME = "yyyy-MM-dd h:mma";
export declare const HUMAN_DATE = "MMM d, yyyy";
export declare const HUMAN_TIME = "h:mma";
export declare const HUMAN_DATETIME = "MMM d, h:mma";
export declare const timezoneMap: Record<TimezonePython, Timezone>;
export declare const weekdays: string[];
export declare const weekdaysUpper: string[];
export declare const weekdaysLower: string[];
export declare const weekdayOptions: {
    value: string;
    name: string;
}[];
export declare const makeWeekday: (date?: Date) => Weekday;
export declare const minutesLeft: (start: Date | number, end: Date | number) => number;
export declare const secondsLeft: (start: Date | number, end: Date | number) => number;
export declare const secondsToTime: (seconds: number) => string;
export declare const timeLeft: (start: Date | number, end: Date | number) => string;
export declare const dateForWeekday: (weekday: Weekday) => Date;
export declare const weekdayAndTimeToDate: (weekday: Weekday, timeStr: string) => Date;
export declare const parseIsoToDate: (iso: string) => Date;
export declare const fmtDate: (date: Date, fmt: string) => string;
export declare const getUserTimezone: () => Timezone;
export declare const makeLocalDate: (dateStr: string) => Date;
export declare const zonedTimeToDate: (str: string, timezone: TimezonePython) => Date;
export declare const zonedTimeToDateStr: (str: string, timezone: TimezonePython, fmt?: string) => string;
export declare const makeLocalDateStr: (date?: Date | null, days?: number, fmt?: string) => string;
export declare const todayDate: () => string;
export declare const tomorrowDate: () => string;
export declare const isoToDate: (iso: ISOString | ISOStringOffset, tz?: Timezone | null) => Date;
export declare const isoToDateStr: (iso: ISOString, tz: Timezone | null, fmt?: string) => string;
export declare const cleanISOString: (date: Date) => ISOString;
export declare const dateToIso: (date: Date, tz: Timezone) => ISOString;
export declare const adjustIso: (iso: ISOString, tz: Timezone, adjustment: Duration) => ISOString;
export declare const adjustZonedIso: (zonedIso: ISOString, tz: Timezone, adjustment: Duration) => string;
export declare const dateToZonedDateStr: (date: Date, tz: Timezone, fmt?: string, days?: number) => string;
export declare const dateToZonedIso: (date: Date, tz: Timezone) => string;
export declare const currentLocalDate: (tz: Timezone) => Date;
export declare const currentLocalDateStr: (tz: Timezone, fmt?: string) => string;
export declare const dateStrToDate: (str: string) => Date;
export declare const dateStrToZonedDate: (str: string, tz: Timezone) => Date;
export declare const dateStrToZonedWeekday: (str: string) => Weekday;
export declare const replaceAmPm: (str: string) => string;
export declare const formatDate: (date: Date, fmt?: string, amPm?: boolean) => string;
export declare const formatDateStr: (str: string, fmt?: string) => string | null;
export declare const formatTimeStr: (str: string) => string;
export declare const dateStrMinutesToIso: (dateStr: string, minutes: number, tz: Timezone) => ISOString;
export declare const isoToDateStrMinutes: (iso: ISOString, tz: Timezone) => {
    date: `${number}${number}${number}${number}-${number}${number}-${number}${number}`;
    minutes: number;
};
export declare const makeReadableDateStrFromIso: (iso: string, tz: Timezone, verbose?: boolean, withTime?: boolean) => string;
export declare const makeRequestedIso: (requestedAt: string) => string;
export declare const makeRequestedAtStr: (requestedAt: string | null, tz: Timezone, verbose?: boolean) => string;
export declare const makeEstimatedTime: (requestedAt: ISOString | string, revenueCenter: RevenueCenter, serviceType: ServiceType, verbose?: boolean) => string | null;
export declare const makeOppositeTimes: (times: Array<number>, interval: number, min?: number, max?: number) => Array<number>;
export declare const time24ToMinutes: (str: string) => number;
export declare const setTimeForDate: (date: Date, hours: number, minutes: number, seconds?: number) => Date;
export declare const minutesToDate: (minutes: number, date?: Date) => Date;
export declare const time24ToDate: (str: string) => Date;
export declare const time24ToDateStr: (str: string, fmt?: string) => string;
export declare const minutesToDates: (minutes: Array<number>, date?: Date) => Array<Date>;
export declare const getMinutesfromDate: (date: Date) => number;
export declare const getNextIntervalMinutes: (minutes: number, interval: number) => number;
export declare const makeDates: (startDateStr: string, days: number, fmt?: string) => {
    label: string;
    value: string;
}[];
export declare const makeTimes: (date: DateString, firstTime: FirstTime, validTimes: ValidTimes, holidays: Holidays | null, serviceType: ServiceType, leadTime?: number) => {
    name: string;
    value: number;
    disabled: boolean;
}[] | null;
export declare const makeOrderTimes: (orderTimes: OrderTime[] | null, tz: Timezone) => OrderTimeWithDate[];
export declare const findOrderTime: (orderTimes: Array<OrderTime> | null, tz: Timezone, requestedAt: ISOString | string | null) => OrderTimeWithDate;
export declare const makeFirstTime: (revenueCenter: RevenueCenter, tz: Timezone, serviceType: ServiceType, requestedAt: RequestedAt | null) => RequestedAt | null;
export declare const makeFirstRequestedAt: (revenueCenter: RevenueCenter, serviceType: ServiceType, requestedAt?: RequestedAt | null) => RequestedAt | null;
export declare const makeFirstTimes: (revenueCenter: RevenueCenter, serviceType: ServiceType, requestedAt: RequestedAt | null) => ({
    serviceType: ServiceType;
    requestedAt: RequestedAt;
} | null)[] | null;
export declare const getNextInterval: (requestedIso: ISOString, tz: Timezone, interval: number) => Date;
export declare const adjustRequestedAt: (requestedIso: ISOString, tz: Timezone, interval: number, leadTime: number) => ISOString;
export declare const getFirstTime: (revenueCenter: RevenueCenter, serviceType: ServiceType, tz: Timezone) => OrderTimeWithDate | FirstTime | null;
export declare const makeGroupOrderTime: (revenueCenter: RevenueCenter, serviceType: ServiceType, requestedAt: RequestedAt) => GroupOrderTime | GroupOrderPrepTime | null;
export declare const formatTime: (time: string) => string;
export declare const makeGroupOrderTimeStr: (requestedAt: RequestedAt | null, tz: Timezone) => string | null;
export declare const getLastInterval: (tz: Timezone) => Date;
export declare const makeIntervals: (tz: Timezone) => ({
    start: Date;
    end: Date;
} & {
    orders: Array<Partial<Order>>;
})[];
export declare const formatTimeList: (dateStr: ISOString, tz: Timezone, includeDate: boolean) => string;
export declare const makeCartDateStr: (requestedAt: string, tz: Timezone, waitTime?: number | null) => string;
export declare const makeOrderWindow: (orderTime: OrderTimeWithDate) => string;
