import type { Prisma } from '../prisma-client';
import type { TFunction } from "next-i18next";
import type { TimeFormat } from '../lib/timeFormat';
import type { SchedulingType } from '../prisma/enums';
import type { CalendarEvent, Person, CalEventResponses, AppsStatus } from "@calcom/types/Calendar";
import type { VideoCallData } from "@calcom/types/VideoApiAdapter";
export declare class CalendarEventBuilder {
    private event;
    constructor(existingEvent?: Partial<CalendarEvent>);
    static fromEvent(event: Partial<CalendarEvent>): CalendarEventBuilder;
    withBasicDetails({ bookerUrl, title, startTime, endTime, additionalNotes, }: {
        bookerUrl: string;
        title: string;
        startTime: string;
        endTime: string;
        additionalNotes?: string;
    }): this;
    withEventType(eventType: {
        slug: string;
        description?: string | null;
        id: number;
        hideCalendarNotes?: boolean;
        hideCalendarEventDetails?: boolean;
        schedulingType?: SchedulingType | null;
        seatsPerTimeSlot?: number | null;
        seatsShowAttendees?: boolean | null;
        seatsShowAvailabilityCount?: boolean | null;
    }): this;
    withOrganizer(organizer: {
        id: number;
        name: string | null;
        email: string;
        username?: string;
        timeZone: string;
        timeFormat?: TimeFormat;
        language: {
            translate: TFunction;
            locale: string;
        };
    }): this;
    withAttendees(attendees: Person[]): this;
    withMetadataAndResponses({ additionalNotes, customInputs, responses, userFieldsResponses, }: {
        additionalNotes?: string | null;
        customInputs?: Prisma.JsonObject | null;
        responses?: CalEventResponses | null;
        userFieldsResponses?: CalEventResponses | null;
    }): this;
    withLocation({ location, conferenceCredentialId, }: {
        location: string | null;
        conferenceCredentialId?: number;
    }): this;
    withDestinationCalendar(destinationCalendar: CalendarEvent["destinationCalendar"]): this;
    withIdentifiers({ iCalUID, iCalSequence }: {
        iCalUID?: string;
        iCalSequence?: number;
    }): this;
    withConfirmation({ requiresConfirmation, isConfirmedByDefault, }: {
        requiresConfirmation: boolean;
        isConfirmedByDefault: boolean;
    }): this;
    withPlatformVariables({ platformClientId, platformRescheduleUrl, platformCancelUrl, platformBookingUrl, }: {
        platformClientId?: string | null;
        platformRescheduleUrl?: string | null;
        platformCancelUrl?: string | null;
        platformBookingUrl?: string | null;
    }): this;
    withAppsStatus(appsStatus?: AppsStatus[]): this;
    withVideoCallData(videoCallData?: VideoCallData): this;
    withTeam(team?: {
        name: string;
        members: Person[];
        id: number;
    }): this;
    withRecurring(recurringEvent?: {
        count: number;
        freq: number;
        interval: number;
    }): this;
    withAttendeeSeatId(attendeeSeatId?: string): this;
    withUid(uid: string | null): this;
    withRecurringEventId(recurringEventId: string): this;
    withOneTimePassword(oneTimePassword?: string | null): this;
    build(): CalendarEvent;
}
//# sourceMappingURL=CalendarEventBuilder.d.ts.map