import type { UseQueryResult } from "@tanstack/react-query";
import type { GetAllSchedulesByUserIdQueryType } from "@calcom/atoms/event-types/wrappers/EventAvailabilityTabWebWrapper";
import type { TeamMembers } from '../../EventType';
import type { EventTypeSetup, Host, SelectClassNames } from '../../../lib/types';
import type { RouterOutputs } from '../../../../../trpc/react';
type ScheduleQueryData = RouterOutputs["viewer"]["availability"]["schedule"]["get"];
type AvailabilityTableCustomClassNames = {
    tableContainer?: string;
    table?: string;
    tableRow?: string;
    day?: string;
    dayUnavailable?: string;
    dayAvailabilityContainer?: string;
    dayAvailabilityFrom?: string;
    dayAvailabilityTo?: string;
    dayAvailabilitySeperator?: string;
};
type TeamMemmberScheduelCustomClassNames = SelectClassNames & {
    labelAvatar?: string;
    labelContainer?: string;
};
type UserAvailabilityCustomClassNames = {
    availabilitySectionContainer?: string;
    availabilitySelect?: SelectClassNames;
    availabilityTable?: AvailabilityTableCustomClassNames;
};
type TeamAvailabilityCustomClassNames = {
    chooseHostSchedulesLabelContainer?: string;
    chooseHostSchedulesLabel?: string;
    chooseHostSchedulesLabelDescription?: string;
    teamAvailibilityContainer?: string;
    teamMemberSchedule: TeamMemmberScheduelCustomClassNames;
};
export type EventAvailabilityTabCustomClassNames = {
    teamAvailability: TeamAvailabilityCustomClassNames;
    userAvailability: UserAvailabilityCustomClassNames;
};
type EventTypeScheduleDetailsProps = {
    scheduleQueryData?: Pick<ScheduleQueryData, "timeZone" | "id" | "isManaged" | "readOnly"> & {
        schedule: Array<Pick<ScheduleQueryData["schedule"][number], "days" | "startTime" | "endTime">>;
    };
    isSchedulePending?: boolean;
    user?: Pick<RouterOutputs["viewer"]["me"]["get"], "timeFormat" | "weekStart">;
    editAvailabilityRedirectUrl?: string;
    customClassNames?: AvailabilityTableCustomClassNames;
};
type HostSchedulesQueryType = GetAllSchedulesByUserIdQueryType | (({ userId }: {
    userId: number;
}) => UseQueryResult<{
    schedules: {
        id: number;
        name: string;
        isDefault: boolean;
        userId: number;
        readOnly: boolean;
    }[];
}, Error>);
type EventTypeTeamScheduleProps = {
    hostSchedulesQuery: HostSchedulesQueryType;
    hosts?: Host[];
    customClassNames?: TeamAvailabilityCustomClassNames;
};
type TeamMember = Pick<TeamMembers[number], "avatar" | "name" | "id">;
type EventTypeScheduleProps = {
    schedulesQueryData?: Array<Omit<RouterOutputs["viewer"]["availability"]["list"]["schedules"][number], "availability">>;
    isSchedulesPending?: boolean;
    eventType: EventTypeSetup;
    teamMembers: TeamMember[];
    customClassNames?: UserAvailabilityCustomClassNames;
} & Omit<EventTypeScheduleDetailsProps, "customClassNames"> & Omit<EventTypeTeamScheduleProps, "customClassNames">;
export type EventAvailabilityTabBaserProps = {
    isTeamEvent: boolean;
};
type EventAvailabilityTabProps = EventAvailabilityTabBaserProps & Omit<EventTypeScheduleProps, "customClassNames"> & {
    customClassNames?: EventAvailabilityTabCustomClassNames;
};
export declare const EventAvailabilityTab: ({ eventType, isTeamEvent, ...rest }: EventAvailabilityTabProps) => JSX.Element;
export {};
//# sourceMappingURL=EventAvailabilityTab.d.ts.map