import * as z from "zod";
import { CompleteUser, CompleteBookingReference, CompleteEventType, CompleteAttendee, CompletePayment, CompleteDestinationCalendar, CompleteWorkflowReminder, CompleteBookingSeat, CompleteInstantMeetingToken, CompleteWebhookScheduledTriggers, CompleteApp_RoutingForms_FormResponse, CompleteAssignmentReason, CompleteBookingInternalNote, CompleteTracking, CompleteRoutingFormResponseDenormalized, CompleteCreditExpenseLog } from "./index";
type Literal = boolean | number | string;
type Json = Literal | {
    [key: string]: Json;
} | Json[];
export declare const _BookingModel: z.ZodObject<{
    id: z.ZodNumber;
    uid: z.ZodString;
    idempotencyKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    userId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    userPrimaryEmail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    eventTypeId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    title: z.ZodString;
    description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    customInputs: z.ZodType<Json, z.ZodTypeDef, Json>;
    responses: z.ZodNullable<z.ZodObject<{
        email: z.ZodString;
        attendeePhoneNumber: z.ZodOptional<z.ZodString>;
        name: z.ZodUnion<[z.ZodString, z.ZodObject<{
            firstName: z.ZodString;
            lastName: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            firstName: string;
            lastName?: string | undefined;
        }, {
            firstName: string;
            lastName?: string | undefined;
        }>]>;
        guests: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        notes: z.ZodOptional<z.ZodString>;
        location: z.ZodOptional<z.ZodObject<{
            optionValue: z.ZodString;
            value: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            value: string;
            optionValue: string;
        }, {
            value: string;
            optionValue: string;
        }>>;
        smsReminderNumber: z.ZodOptional<z.ZodString>;
        rescheduleReason: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name: (string | {
            firstName: string;
            lastName?: string | undefined;
        }) & (string | {
            firstName: string;
            lastName?: string | undefined;
        } | undefined);
        email: string;
        attendeePhoneNumber?: string | undefined;
        guests?: string[] | undefined;
        notes?: string | undefined;
        location?: {
            value: string;
            optionValue: string;
        } | undefined;
        smsReminderNumber?: string | undefined;
        rescheduleReason?: string | undefined;
    }, {
        name: (string | {
            firstName: string;
            lastName?: string | undefined;
        }) & (string | {
            firstName: string;
            lastName?: string | undefined;
        } | undefined);
        email: string;
        attendeePhoneNumber?: string | undefined;
        guests?: string[] | undefined;
        notes?: string | undefined;
        location?: {
            value: string;
            optionValue: string;
        } | undefined;
        smsReminderNumber?: string | undefined;
        rescheduleReason?: string | undefined;
    }>>;
    startTime: z.ZodDate;
    endTime: z.ZodDate;
    location: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    createdAt: z.ZodDate;
    updatedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
    status: z.ZodNativeEnum<{
        CANCELLED: "CANCELLED";
        ACCEPTED: "ACCEPTED";
        REJECTED: "REJECTED";
        PENDING: "PENDING";
        AWAITING_HOST: "AWAITING_HOST";
    }>;
    paid: z.ZodBoolean;
    destinationCalendarId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    cancellationReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rejectionReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    reassignReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    reassignById: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    dynamicEventSlugRef: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    dynamicGroupSlugRef: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rescheduled: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    fromReschedule: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    recurringEventId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    smsReminderNumber: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    scheduledJobs: z.ZodArray<z.ZodString, "many">;
    metadata: z.ZodNullable<z.ZodIntersection<z.ZodObject<{
        videoCallUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        videoCallUrl?: string | undefined;
    }, {
        videoCallUrl?: string | undefined;
    }>, z.ZodRecord<z.ZodString, z.ZodString>>>;
    isRecorded: z.ZodBoolean;
    iCalUID: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    iCalSequence: z.ZodNumber;
    rating: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    ratingFeedback: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    noShowHost: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    oneTimePassword: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    cancelledBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    rescheduledBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    creationSource: z.ZodOptional<z.ZodNullable<z.ZodNativeEnum<{
        API_V1: "API_V1";
        API_V2: "API_V2";
        WEBAPP: "WEBAPP";
    }>>>;
}, "strip", z.ZodTypeAny, {
    id: number;
    title: string;
    metadata: ({
        videoCallUrl?: string | undefined;
    } & Record<string, string>) | null;
    status: "CANCELLED" | "ACCEPTED" | "REJECTED" | "PENDING" | "AWAITING_HOST";
    paid: boolean;
    uid: string;
    customInputs: Json & (Json | undefined);
    responses: {
        name: (string | {
            firstName: string;
            lastName?: string | undefined;
        }) & (string | {
            firstName: string;
            lastName?: string | undefined;
        } | undefined);
        email: string;
        attendeePhoneNumber?: string | undefined;
        guests?: string[] | undefined;
        notes?: string | undefined;
        location?: {
            value: string;
            optionValue: string;
        } | undefined;
        smsReminderNumber?: string | undefined;
        rescheduleReason?: string | undefined;
    } | null;
    startTime: Date;
    endTime: Date;
    createdAt: Date;
    scheduledJobs: string[];
    isRecorded: boolean;
    iCalSequence: number;
    idempotencyKey?: string | null | undefined;
    userId?: number | null | undefined;
    userPrimaryEmail?: string | null | undefined;
    eventTypeId?: number | null | undefined;
    description?: string | null | undefined;
    location?: string | null | undefined;
    updatedAt?: Date | null | undefined;
    destinationCalendarId?: number | null | undefined;
    cancellationReason?: string | null | undefined;
    rejectionReason?: string | null | undefined;
    reassignReason?: string | null | undefined;
    reassignById?: number | null | undefined;
    dynamicEventSlugRef?: string | null | undefined;
    dynamicGroupSlugRef?: string | null | undefined;
    rescheduled?: boolean | null | undefined;
    fromReschedule?: string | null | undefined;
    recurringEventId?: string | null | undefined;
    smsReminderNumber?: string | null | undefined;
    iCalUID?: string | null | undefined;
    rating?: number | null | undefined;
    ratingFeedback?: string | null | undefined;
    noShowHost?: boolean | null | undefined;
    oneTimePassword?: string | null | undefined;
    cancelledBy?: string | null | undefined;
    rescheduledBy?: string | null | undefined;
    creationSource?: "API_V1" | "API_V2" | "WEBAPP" | null | undefined;
}, {
    id: number;
    title: string;
    metadata: ({
        videoCallUrl?: string | undefined;
    } & Record<string, string>) | null;
    status: "CANCELLED" | "ACCEPTED" | "REJECTED" | "PENDING" | "AWAITING_HOST";
    paid: boolean;
    uid: string;
    customInputs: Json & (Json | undefined);
    responses: {
        name: (string | {
            firstName: string;
            lastName?: string | undefined;
        }) & (string | {
            firstName: string;
            lastName?: string | undefined;
        } | undefined);
        email: string;
        attendeePhoneNumber?: string | undefined;
        guests?: string[] | undefined;
        notes?: string | undefined;
        location?: {
            value: string;
            optionValue: string;
        } | undefined;
        smsReminderNumber?: string | undefined;
        rescheduleReason?: string | undefined;
    } | null;
    startTime: Date;
    endTime: Date;
    createdAt: Date;
    scheduledJobs: string[];
    isRecorded: boolean;
    iCalSequence: number;
    idempotencyKey?: string | null | undefined;
    userId?: number | null | undefined;
    userPrimaryEmail?: string | null | undefined;
    eventTypeId?: number | null | undefined;
    description?: string | null | undefined;
    location?: string | null | undefined;
    updatedAt?: Date | null | undefined;
    destinationCalendarId?: number | null | undefined;
    cancellationReason?: string | null | undefined;
    rejectionReason?: string | null | undefined;
    reassignReason?: string | null | undefined;
    reassignById?: number | null | undefined;
    dynamicEventSlugRef?: string | null | undefined;
    dynamicGroupSlugRef?: string | null | undefined;
    rescheduled?: boolean | null | undefined;
    fromReschedule?: string | null | undefined;
    recurringEventId?: string | null | undefined;
    smsReminderNumber?: string | null | undefined;
    iCalUID?: string | null | undefined;
    rating?: number | null | undefined;
    ratingFeedback?: string | null | undefined;
    noShowHost?: boolean | null | undefined;
    oneTimePassword?: string | null | undefined;
    cancelledBy?: string | null | undefined;
    rescheduledBy?: string | null | undefined;
    creationSource?: "API_V1" | "API_V2" | "WEBAPP" | null | undefined;
}>;
export interface CompleteBooking extends z.infer<typeof _BookingModel> {
    user?: CompleteUser | null;
    references: CompleteBookingReference[];
    eventType?: CompleteEventType | null;
    attendees: CompleteAttendee[];
    payment: CompletePayment[];
    destinationCalendar?: CompleteDestinationCalendar | null;
    reassignBy?: CompleteUser | null;
    workflowReminders: CompleteWorkflowReminder[];
    seatsReferences: CompleteBookingSeat[];
    instantMeetingToken?: CompleteInstantMeetingToken | null;
    scheduledTriggers: CompleteWebhookScheduledTriggers[];
    routedFromRoutingFormReponse?: CompleteApp_RoutingForms_FormResponse | null;
    assignmentReason: CompleteAssignmentReason[];
    internalNote: CompleteBookingInternalNote[];
    tracking?: CompleteTracking | null;
    routingFormResponses: CompleteRoutingFormResponseDenormalized[];
    expenseLogs: CompleteCreditExpenseLog[];
}
/**
 * BookingModel contains all relations on your model in addition to the scalars
 *
 * NOTE: Lazy required in case of potential circular dependencies within schema
 */
export declare const BookingModel: z.ZodSchema<CompleteBooking>;
export {};
//# sourceMappingURL=booking.d.ts.map