import type { ArrayPath, Control, FieldPath, FieldPathValue, FieldValues } from "react-hook-form";
import type { scheduleClassNames } from "@calcom/atoms/availability/types";
import type { TimeRange } from "@calcom/types/schedule";
export type { TimeRange };
export type ScheduleLabelsType = {
    addTime: string;
    copyTime: string;
    deleteTime: string;
};
export type FieldPathByValue<TFieldValues extends FieldValues, TValue> = {
    [Key in FieldPath<TFieldValues>]: FieldPathValue<TFieldValues, Key> extends TValue ? Key : never;
}[FieldPath<TFieldValues>];
export declare const ScheduleDay: <TFieldValues extends FieldValues>({ name, weekday, control, CopyButton, disabled, labels, userTimeFormat, classNames, }: {
    name: ArrayPath<TFieldValues>;
    weekday: string;
    control: Control<TFieldValues>;
    CopyButton: JSX.Element;
    disabled?: boolean;
    labels?: ScheduleLabelsType;
    userTimeFormat: number | null;
    classNames?: scheduleClassNames;
}) => JSX.Element;
declare const Schedule: <TFieldValues extends FieldValues, TPath extends FieldPathByValue<TFieldValues, TimeRange[][]>>(props: {
    name: TPath;
    control: Control<TFieldValues>;
    weekStart?: number;
    disabled?: boolean;
    labels?: ScheduleLabelsType;
    userTimeFormat?: number | null;
}) => JSX.Element;
export declare const ScheduleComponent: <TFieldValues extends FieldValues, TPath extends FieldPathByValue<TFieldValues, TimeRange[][]>>({ name, control, disabled, weekStart, labels, userTimeFormat, classNames, }: {
    name: TPath;
    control: Control<TFieldValues>;
    weekStart?: number;
    disabled?: boolean;
    labels?: ScheduleLabelsType;
    userTimeFormat: number | null;
    classNames?: Omit<scheduleClassNames, "scheduleContainer">;
}) => JSX.Element;
export declare const DayRanges: <TFieldValues extends FieldValues>({ name, disabled, control, labels, userTimeFormat, classNames, }: {
    name: ArrayPath<TFieldValues>;
    control?: Control<TFieldValues>;
    disabled?: boolean;
    labels?: ScheduleLabelsType;
    userTimeFormat: number | null;
    classNames?: Pick<scheduleClassNames, "dayRanges" | "timeRangeField">;
}) => JSX.Element | null;
export default Schedule;
//# sourceMappingURL=Schedule.d.ts.map