import type { ArrayPath, Control, FieldPath, FieldPathValue, FieldValues } from "react-hook-form";
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, className, }: {
    name: ArrayPath<TFieldValues>;
    weekday: string;
    control: Control<TFieldValues>;
    CopyButton: JSX.Element;
    disabled?: boolean;
    labels?: ScheduleLabelsType;
    userTimeFormat: number | null;
    className?: {
        scheduleDay?: string;
        dayRanges?: string;
        timeRangeField?: string;
        labelAndSwitchContainer?: string;
        scheduleContainer?: string;
    };
}) => 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, className, }: {
    name: TPath;
    control: Control<TFieldValues>;
    weekStart?: number;
    disabled?: boolean;
    labels?: ScheduleLabelsType;
    userTimeFormat: number | null;
    className?: {
        schedule?: string;
        scheduleDay?: string;
        dayRanges?: string;
        timeRanges?: string;
        labelAndSwitchContainer?: string;
    };
}) => JSX.Element;
export declare const DayRanges: <TFieldValues extends FieldValues>({ name, disabled, control, labels, userTimeFormat, className, }: {
    name: ArrayPath<TFieldValues>;
    control?: Control<TFieldValues>;
    disabled?: boolean;
    labels?: ScheduleLabelsType;
    userTimeFormat: number | null;
    className?: {
        dayRanges?: string;
        timeRangeField?: string;
    };
}) => JSX.Element | null;
export default Schedule;
//# sourceMappingURL=Schedule.d.ts.map