import type { SetStateAction, Dispatch } from "react";
import type { BulkUpdatParams, EventTypes } from '../../../features/eventtypes/components/BulkEditDefaultForEventsModal';
import type { RouterOutputs } from '../../../trpc/react';
import type { TimeRange, WorkingHours } from "@calcom/types/schedule";
import type { AvailabilityFormValues, scheduleClassNames } from "./types";
export type Schedule = {
    id: number;
    startTime: Date;
    endTime: Date;
    userId: number | null;
    eventTypeId: number | null;
    date: Date | null;
    scheduleId: number | null;
    days: number[];
};
export type CustomClassNames = {
    containerClassName?: string;
    ctaClassName?: string;
    editableHeadingClassName?: string;
    formClassName?: string;
    timezoneSelectClassName?: string;
    subtitlesClassName?: string;
    scheduleClassNames?: scheduleClassNames;
    overridesModalClassNames?: string;
    hiddenSwitchClassname?: {
        container?: string;
        thumb?: string;
    };
    deleteButtonClassname?: string;
};
export type Availability = Pick<Schedule, "days" | "startTime" | "endTime">;
export type AvailabilitySettingsScheduleType = {
    name: string;
    id: number;
    availability: TimeRange[][];
    isLastSchedule: boolean;
    isDefault: boolean;
    workingHours: WorkingHours[];
    dateOverrides: {
        ranges: TimeRange[];
    }[];
    timeZone: string;
    schedule: Availability[];
};
type AvailabilitySettingsProps = {
    skeletonLabel?: string;
    schedule: AvailabilitySettingsScheduleType;
    travelSchedules?: RouterOutputs["viewer"]["travelSchedules"]["get"];
    handleDelete: () => void;
    allowDelete?: boolean;
    allowSetToDefault?: boolean;
    isDeleting: boolean;
    isSaving: boolean;
    isLoading: boolean;
    timeFormat: number | null;
    weekStart: string;
    backPath: string | boolean;
    handleSubmit: (data: AvailabilityFormValues) => Promise<void>;
    isPlatform?: boolean;
    customClassNames?: CustomClassNames;
    disableEditableHeading?: boolean;
    enableOverrides?: boolean;
    onFormStateChange?: (formState: AvailabilityFormValues) => void;
    bulkUpdateModalProps?: {
        isOpen: boolean;
        setIsOpen: Dispatch<SetStateAction<boolean>>;
        save: (params: BulkUpdatParams) => void;
        isSaving: boolean;
        eventTypes?: EventTypes;
        isEventTypesFetching?: boolean;
        handleBulkEditDialogToggle: () => void;
    };
};
export declare function AvailabilitySettings({ schedule, travelSchedules, handleDelete, isDeleting, isLoading, isSaving, timeFormat, weekStart, backPath, handleSubmit, isPlatform, customClassNames, disableEditableHeading, enableOverrides, onFormStateChange, bulkUpdateModalProps, allowSetToDefault, allowDelete, }: AvailabilitySettingsProps): JSX.Element;
export {};
//# sourceMappingURL=AvailabilitySettings.d.ts.map