import type { Prisma, Webhook } from '../../../prisma-client';
import type { ApiKey } from '../../../prisma/client';
import { WebhookTriggerEvents } from '../../../prisma/enums';
export declare function addSubscription({ appApiKey, triggerEvent, subscriberUrl, appId, account, }: {
    appApiKey?: ApiKey;
    triggerEvent: WebhookTriggerEvents;
    subscriberUrl: string;
    appId: string;
    account?: {
        id: number;
        name: string | null;
        isTeam: boolean;
    } | null;
}): Promise<{
    id: string;
    time: number | null;
    active: boolean;
    secret: string | null;
    platform: boolean;
    userId: number | null;
    eventTypeId: number | null;
    teamId: number | null;
    createdAt: Date;
    appId: string | null;
    subscriberUrl: string;
    payloadTemplate: string | null;
    eventTriggers: import('../../../prisma-client').$Enums.WebhookTriggerEvents[];
    timeUnit: import('../../../prisma-client').$Enums.TimeUnit | null;
    platformOAuthClientId: string | null;
} | undefined>;
export declare function deleteSubscription({ appApiKey, webhookId, appId, account, }: {
    appApiKey?: ApiKey;
    webhookId: string;
    appId: string;
    account?: {
        id: number;
        name: string | null;
        isTeam: boolean;
    } | null;
}): Promise<{
    id: string;
    time: number | null;
    active: boolean;
    secret: string | null;
    platform: boolean;
    userId: number | null;
    eventTypeId: number | null;
    teamId: number | null;
    createdAt: Date;
    appId: string | null;
    subscriberUrl: string;
    payloadTemplate: string | null;
    eventTriggers: import('../../../prisma-client').$Enums.WebhookTriggerEvents[];
    timeUnit: import('../../../prisma-client').$Enums.TimeUnit | null;
    platformOAuthClientId: string | null;
} | undefined>;
export declare function listBookings(appApiKey?: ApiKey, account?: {
    id: number;
    name: string | null;
    isTeam: boolean;
} | null): Promise<{
    location: string;
    userFieldsResponses: import("@calcom/types/Calendar").CalEventResponses;
    responses: import("@calcom/types/Calendar").CalEventResponses;
    eventType: {
        length: number;
        title: string;
        description: string | null;
        price: number;
        team: {
            name: string;
            id: number;
            metadata: Prisma.JsonValue;
            bio: string | null;
            theme: string | null;
            slug: string | null;
            parentId: number | null;
            timeZone: string;
            bookingLimits: Prisma.JsonValue;
            createdAt: Date;
            weekStart: string;
            hideBranding: boolean;
            timeFormat: number | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            logoUrl: string | null;
            calVideoLogo: string | null;
            appLogo: string | null;
            appIconLogo: string | null;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            bannerUrl: string | null;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            includeManagedEventsInLimits: boolean;
        } | null;
        currency: string;
        bookingFields: Prisma.JsonValue;
        requiresConfirmation: boolean;
    } | null;
    user: {
        name: string | null;
        username: string | null;
        email: string;
        locale: string | null;
        timeZone: string;
    } | null;
    title: string;
    status: import('../../../prisma-client').$Enums.BookingStatus;
    description: string | null;
    attendees: {
        name: string;
        email: string;
        timeZone: string;
    }[];
    customInputs: Prisma.JsonValue;
    cancellationReason: string | null;
    startTime: Date;
    endTime: Date;
}[] | undefined>;
export declare function scheduleTrigger({ booking, subscriberUrl, subscriber, triggerEvent, isDryRun, }: {
    booking: {
        id: number;
        endTime: Date;
        startTime: Date;
    };
    subscriberUrl: string;
    subscriber: {
        id: string;
        appId: string | null;
    };
    triggerEvent: WebhookTriggerEvents;
    isDryRun?: boolean;
}): Promise<void>;
export declare function deleteWebhookScheduledTriggers({ booking, appId, triggerEvent, webhookId, userId, teamId, isDryRun, }: {
    booking?: {
        id: number;
        uid: string;
    };
    appId?: string | null;
    triggerEvent?: WebhookTriggerEvents;
    webhookId?: string;
    userId?: number;
    teamId?: number;
    isDryRun?: boolean;
}): Promise<void>;
export declare function updateTriggerForExistingBookings(webhook: Webhook, existingEventTriggers: WebhookTriggerEvents[], updatedEventTriggers: WebhookTriggerEvents[]): Promise<void>;
export declare function listOOOEntries(appApiKey?: ApiKey, account?: {
    id: number;
    name: string | null;
    isTeam: boolean;
} | null): Promise<{
    user: {
        name: string | null;
        id: number;
        email: string;
        timeZone: string;
    };
    id: number;
    end: Date;
    notes: string | null;
    reason: {
        reason: string;
        emoji: string;
    } | null;
    start: Date;
    createdAt: Date;
    updatedAt: Date;
    uuid: string;
    toUser: {
        name: string | null;
        id: number;
        email: string;
        timeZone: string;
    } | null;
    reasonId: number | null;
}[] | undefined>;
//# sourceMappingURL=scheduleTrigger.d.ts.map