import { Prisma } from '../../../prisma-client';
import type { z } from "zod";
import { teamMetadataSchema } from '../../../prisma/zod-utils';
type TeamGetPayloadWithParsedMetadata<TeamSelect extends Prisma.TeamSelect> = (Omit<Prisma.TeamGetPayload<{
    select: TeamSelect;
}>, "metadata" | "isOrganization"> & {
    metadata: z.infer<typeof teamMetadataSchema>;
    isOrganization: boolean;
}) | null;
type GetTeamOrOrgArg<TeamSelect extends Prisma.TeamSelect> = {
    lookupBy: ({
        id: number;
    } | {
        slug: string;
    }) & {
        havingMemberWithId?: number;
    };
    /**
     * If we are fetching a team, this is the slug of the organization that the team belongs to.
     */
    forOrgWithSlug: string | null;
    /**
     * If true, means that we need to fetch an organization with the given slug. Otherwise, we need to fetch a team with the given slug.
     */
    isOrg: boolean;
    teamSelect: TeamSelect;
};
export declare function getTeam<TeamSelect extends Prisma.TeamSelect>({ lookupBy, forOrgWithSlug: forOrgWithSlug, teamSelect, }: Omit<GetTeamOrOrgArg<TeamSelect>, "isOrg">): Promise<TeamGetPayloadWithParsedMetadata<TeamSelect>>;
export declare function getOrg<TeamSelect extends Prisma.TeamSelect>({ lookupBy, forOrgWithSlug: forOrgWithSlug, teamSelect, }: Omit<GetTeamOrOrgArg<TeamSelect>, "isOrg">): Promise<TeamGetPayloadWithParsedMetadata<TeamSelect>>;
export declare class TeamRepository {
    static findById({ id }: {
        id: number;
    }): Promise<(Omit<{
        name: string;
        id: number;
        metadata: Prisma.JsonValue;
        slug: string | null;
        parentId: number | null;
        organizationSettings: {
            id: number;
            organizationId: number;
            isOrganizationVerified: boolean;
            isOrganizationConfigured: boolean;
            isAdminReviewed: boolean;
            orgAutoAcceptEmail: string;
            isAdminAPIEnabled: boolean;
            allowSEOIndexing: boolean;
            lockEventTypeCreationForUsers: boolean;
            adminGetsNoSlotsNotification: boolean;
            orgProfileRedirectsToVerifiedDomain: boolean;
            disablePhoneOnlySMSNotifications: boolean;
        } | null;
        logoUrl: string | null;
        isOrganization: boolean;
        isPlatform: boolean;
    }, "metadata"> & {
        requestedSlug: string | null;
        metadata: {
            requestedSlug: string | null;
            defaultConferencingApp?: {
                appSlug?: string | undefined;
                appLink?: string | undefined;
            } | undefined;
            paymentId?: string | undefined;
            subscriptionId?: string | null | undefined;
            subscriptionItemId?: string | null | undefined;
            orgSeats?: number | null | undefined;
            orgPricePerSeat?: number | null | undefined;
            migratedToOrgFrom?: {
                teamSlug?: string | null | undefined;
                lastMigrationTime?: string | undefined;
                reverted?: boolean | undefined;
                lastRevertTime?: string | undefined;
            } | undefined;
            billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
        };
    }) | null>;
    static findAllByParentId({ parentId, select, }: {
        parentId: number;
        select?: Prisma.TeamSelect;
    }): Promise<{
        name: string;
        id: number;
        children: {
            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;
            hideTeamProfileLink: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
            bannerUrl: string | null;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            includeManagedEventsInLimits: boolean;
        }[];
        metadata: Prisma.JsonValue;
        webhooks: {
            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;
        }[];
        members: {
            id: number;
            role: import('../../../prisma-client').$Enums.MembershipRole;
            userId: number;
            teamId: number;
            createdAt: Date | null;
            updatedAt: Date | null;
            disableImpersonation: boolean;
            accepted: boolean;
            customRoleId: string | null;
        }[];
        features: {
            teamId: number;
            updatedAt: Date;
            assignedAt: Date;
            assignedBy: string;
            featureId: string;
        }[];
        workflows: {
            name: string;
            id: number;
            time: number | null;
            trigger: import('../../../prisma-client').$Enums.WorkflowTriggerEvents;
            userId: number | null;
            position: number;
            teamId: number | null;
            timeUnit: import('../../../prisma-client').$Enums.TimeUnit | null;
            isActiveOnAll: boolean;
        }[];
        bio: string | null;
        theme: string | null;
        slug: string | null;
        attributes: {
            name: string;
            id: string;
            type: import('../../../prisma-client').$Enums.AttributeType;
            enabled: boolean;
            slug: string;
            teamId: number;
            createdAt: Date;
            updatedAt: Date;
            usersCanEditRelation: boolean;
            isWeightsEnabled: boolean;
            isLocked: boolean;
        }[];
        credentials: {
            key: Prisma.JsonValue;
            id: number;
            type: string;
            userId: number | null;
            teamId: number | null;
            subscriptionId: string | null;
            delegationCredentialId: string | null;
            billingCycleStart: number | null;
            appId: string | null;
            paymentStatus: string | null;
            invalid: boolean | null;
        }[];
        parentId: number | null;
        timeZone: string;
        bookingLimits: Prisma.JsonValue;
        parent: {
            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;
            hideTeamProfileLink: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
            bannerUrl: string | null;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            includeManagedEventsInLimits: boolean;
        } | null;
        _count: {
            members: number;
            eventTypes: number;
            workflows: number;
            verifiedNumbers: number;
            verifiedEmails: number;
            parent: number;
            children: number;
            orgUsers: number;
            inviteTokens: number;
            webhooks: number;
            routingForms: number;
            apiKeys: number;
            credentials: number;
            accessCodes: number;
            organizationSettings: number;
            instantMeetingTokens: number;
            orgProfiles: number;
            dsyncTeamGroupMapping: number;
            platformOAuthClient: number;
            createdByOAuthClient: number;
            platformBilling: number;
            activeOrgWorkflows: number;
            attributes: number;
            delegationCredentials: number;
            domainWideDelegations: number;
            roles: number;
            features: number;
            internalNotePresets: number;
            creditBalance: number;
            organizationOnboarding: number;
            managedOrganization: number;
            managedOrganizations: number;
            filterSegments: number;
        };
        creditBalance: {
            id: string;
            userId: number | null;
            teamId: number | null;
            additionalCredits: number;
            limitReachedAt: Date | null;
            warningSentAt: Date | null;
        } | null;
        organizationSettings: {
            id: number;
            organizationId: number;
            isOrganizationVerified: boolean;
            isOrganizationConfigured: boolean;
            isAdminReviewed: boolean;
            orgAutoAcceptEmail: string;
            isAdminAPIEnabled: boolean;
            allowSEOIndexing: boolean;
            lockEventTypeCreationForUsers: boolean;
            adminGetsNoSlotsNotification: boolean;
            orgProfileRedirectsToVerifiedDomain: boolean;
            disablePhoneOnlySMSNotifications: boolean;
        } | null;
        platformOAuthClient: {
            name: string;
            id: string;
            secret: string;
            logo: string | null;
            permissions: number;
            organizationId: number;
            areCalendarEventsEnabled: boolean;
            createdAt: Date;
            redirectUris: string[];
            bookingRedirectUri: string | null;
            bookingCancelRedirectUri: string | null;
            bookingRescheduleRedirectUri: string | null;
            areEmailsEnabled: boolean;
            areDefaultEventTypesEnabled: boolean;
        }[];
        managedOrganization: {
            createdAt: Date;
            managedOrganizationId: number;
            managerOrganizationId: number;
        } | null;
        platformBilling: {
            id: number;
            subscriptionId: string | null;
            customerId: string;
            priceId: string | null;
            plan: string;
            billingCycleStart: number | null;
            billingCycleEnd: number | null;
            overdue: boolean | null;
            managerBillingId: number | null;
        } | null;
        organizationOnboarding: {
            error: string | null;
            name: string;
            id: string;
            seats: number;
            teams: Prisma.JsonValue;
            logo: string | null;
            bio: string | null;
            slug: string;
            organizationId: number | null;
            stripeCustomerId: string | null;
            billingPeriod: import('../../../prisma-client').$Enums.BillingPeriod;
            createdAt: Date;
            updatedAt: Date;
            isPlatform: boolean;
            createdById: number;
            orgOwnerEmail: string;
            pricePerSeat: number;
            isDomainConfigured: boolean;
            stripeSubscriptionId: string | null;
            stripeSubscriptionItemId: string | null;
            invitedMembers: Prisma.JsonValue;
            isComplete: boolean;
        } | null;
        createdAt: Date;
        weekStart: string;
        hideBranding: boolean;
        timeFormat: number | null;
        brandColor: string | null;
        darkBrandColor: string | null;
        smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
        smsLockReviewedByAdmin: boolean;
        eventTypes: {
            id: number;
            length: number;
            title: string;
            metadata: Prisma.JsonValue;
            description: string | null;
            price: number;
            hidden: boolean;
            currency: string;
            slug: string;
            userId: number | null;
            interfaceLanguage: string | null;
            position: number;
            locations: Prisma.JsonValue;
            offsetStart: number;
            profileId: number | null;
            teamId: number | null;
            useEventLevelSelectedCalendars: boolean;
            eventName: string | null;
            parentId: number | null;
            bookingFields: Prisma.JsonValue;
            timeZone: string | null;
            periodType: import('../../../prisma-client').$Enums.PeriodType;
            periodStartDate: Date | null;
            periodEndDate: Date | null;
            periodDays: number | null;
            periodCountCalendarDays: boolean | null;
            lockTimeZoneToggleOnBookingPage: boolean;
            requiresConfirmation: boolean;
            requiresConfirmationWillBlockSlot: boolean;
            requiresConfirmationForFreeEmail: boolean;
            requiresBookerEmailVerification: boolean;
            canSendCalVideoTranscriptionEmails: boolean;
            autoTranslateDescriptionEnabled: boolean;
            recurringEvent: Prisma.JsonValue;
            disableGuests: boolean;
            hideCalendarNotes: boolean;
            hideCalendarEventDetails: boolean;
            minimumBookingNotice: number;
            beforeEventBuffer: number;
            afterEventBuffer: number;
            seatsPerTimeSlot: number | null;
            onlyShowFirstAvailableSlot: boolean;
            disableCancelling: boolean | null;
            disableRescheduling: boolean | null;
            seatsShowAttendees: boolean | null;
            seatsShowAvailabilityCount: boolean | null;
            schedulingType: import('../../../prisma-client').$Enums.SchedulingType | null;
            scheduleId: number | null;
            allowReschedulingCancelledBookings: boolean | null;
            slotInterval: number | null;
            successRedirectUrl: string | null;
            forwardParamsSuccessRedirect: boolean | null;
            bookingLimits: Prisma.JsonValue;
            durationLimits: Prisma.JsonValue;
            isInstantEvent: boolean;
            instantMeetingExpiryTimeOffsetInSeconds: number;
            instantMeetingScheduleId: number | null;
            instantMeetingParameters: string[];
            assignAllTeamMembers: boolean;
            assignRRMembersUsingSegment: boolean;
            rrSegmentQueryValue: Prisma.JsonValue;
            useEventTypeDestinationCalendarEmail: boolean;
            isRRWeightsEnabled: boolean;
            maxLeadThreshold: number | null;
            includeNoShowInRRCalculation: boolean;
            allowReschedulingPastBookings: boolean;
            hideOrganizerEmail: boolean;
            maxActiveBookingsPerBooker: number | null;
            maxActiveBookingPerBookerOfferReschedule: boolean;
            customReplyToEmail: string | null;
            eventTypeColor: Prisma.JsonValue;
            rescheduleWithSameRoundRobinHost: boolean;
            secondaryEmailId: number | null;
            useBookerTimezone: boolean;
            restrictionScheduleId: number | null;
        }[];
        apiKeys: {
            id: string;
            note: string | null;
            userId: number;
            teamId: number | null;
            createdAt: Date;
            appId: string | null;
            expiresAt: Date | null;
            lastUsedAt: Date | null;
            hashedKey: string;
        }[];
        routingForms: {
            settings: Prisma.JsonValue;
            name: string;
            id: string;
            description: string | null;
            disabled: boolean;
            userId: number;
            fields: Prisma.JsonValue;
            routes: Prisma.JsonValue;
            position: number;
            teamId: number | null;
            createdAt: Date;
            updatedAt: Date;
            updatedById: number | null;
        }[];
        verifiedNumbers: {
            id: number;
            userId: number | null;
            teamId: number | null;
            phoneNumber: string;
        }[];
        verifiedEmails: {
            id: number;
            email: string;
            userId: number | null;
            teamId: number | null;
        }[];
        accessCodes: {
            code: string;
            id: number;
            clientId: string | null;
            userId: number | null;
            teamId: number | null;
            expiresAt: Date;
            scopes: import('../../../prisma-client').$Enums.AccessScope[];
        }[];
        filterSegments: {
            name: string;
            id: number;
            userId: number;
            teamId: number | null;
            createdAt: Date;
            updatedAt: Date;
            scope: import('../../../prisma-client').$Enums.FilterSegmentScope;
            tableIdentifier: string;
            activeFilters: Prisma.JsonValue;
            sorting: Prisma.JsonValue;
            columnVisibility: Prisma.JsonValue;
            columnSizing: Prisma.JsonValue;
            perPage: number;
            searchTerm: string | null;
        }[];
        logoUrl: string | null;
        calVideoLogo: string | null;
        appLogo: string | null;
        appIconLogo: string | null;
        hideTeamProfileLink: boolean;
        isPrivate: boolean;
        hideBookATeamMember: boolean;
        rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
        rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
        bannerUrl: string | null;
        isOrganization: boolean;
        pendingPayment: boolean;
        isPlatform: boolean;
        createdByOAuthClientId: string | null;
        includeManagedEventsInLimits: boolean;
        orgUsers: {
            name: string | null;
            id: number;
            role: import('../../../prisma-client').$Enums.UserPermissionRole;
            metadata: Prisma.JsonValue;
            username: string | null;
            email: string;
            bio: string | null;
            theme: string | null;
            verified: boolean | null;
            locked: boolean;
            organizationId: number | null;
            locale: string | null;
            timeZone: string;
            startTime: number;
            endTime: number;
            creationSource: import('../../../prisma-client').$Enums.CreationSource | null;
            movedToProfileId: number | null;
            emailVerified: Date | null;
            avatarUrl: string | null;
            weekStart: string;
            bufferTime: number;
            hideBranding: boolean;
            appTheme: string | null;
            createdDate: Date;
            trialEndsAt: Date | null;
            lastActiveAt: Date | null;
            defaultScheduleId: number | null;
            completedOnboarding: boolean;
            timeFormat: number | null;
            twoFactorSecret: string | null;
            twoFactorEnabled: boolean;
            backupCodes: string | null;
            identityProvider: import('../../../prisma-client').$Enums.IdentityProvider;
            identityProviderId: string | null;
            invitedTo: number | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            allowDynamicBooking: boolean | null;
            allowSEOIndexing: boolean | null;
            receiveMonthlyDigestEmail: boolean | null;
            disableImpersonation: boolean;
            isPlatformManaged: boolean;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            referralLinkId: string | null;
            whitelistWorkflows: boolean;
        }[];
        inviteTokens: {
            id: number;
            expires: Date;
            identifier: string;
            teamId: number | null;
            secondaryEmailId: number | null;
            token: string;
            createdAt: Date;
            updatedAt: Date;
            expiresInDays: number | null;
        }[];
        instantMeetingTokens: {
            id: number;
            expires: Date;
            teamId: number;
            bookingId: number | null;
            token: string;
            createdAt: Date;
            updatedAt: Date;
        }[];
        orgProfiles: {
            id: number;
            username: string;
            uid: string;
            organizationId: number;
            userId: number;
            createdAt: Date;
            updatedAt: Date;
        }[];
        dsyncTeamGroupMapping: {
            id: number;
            organizationId: number;
            teamId: number;
            directoryId: string;
            groupName: string;
        }[];
        createdByOAuthClient: {
            name: string;
            id: string;
            secret: string;
            logo: string | null;
            permissions: number;
            organizationId: number;
            areCalendarEventsEnabled: boolean;
            createdAt: Date;
            redirectUris: string[];
            bookingRedirectUri: string | null;
            bookingCancelRedirectUri: string | null;
            bookingRescheduleRedirectUri: string | null;
            areEmailsEnabled: boolean;
            areDefaultEventTypesEnabled: boolean;
        } | null;
        activeOrgWorkflows: {
            id: number;
            teamId: number;
            workflowId: number;
        }[];
        delegationCredentials: {
            id: string;
            enabled: boolean;
            domain: string;
            organizationId: number;
            createdAt: Date;
            updatedAt: Date;
            workspacePlatformId: number;
            serviceAccountKey: Prisma.JsonValue;
            lastEnabledAt: Date | null;
            lastDisabledAt: Date | null;
        }[];
        domainWideDelegations: {
            id: string;
            enabled: boolean;
            domain: string;
            organizationId: number;
            createdAt: Date;
            updatedAt: Date;
            workspacePlatformId: number;
            serviceAccountKey: Prisma.JsonValue;
        }[];
        roles: {
            name: string;
            id: string;
            type: import('../../../prisma-client').$Enums.RoleType;
            description: string | null;
            teamId: number | null;
            createdAt: Date;
            updatedAt: Date;
        }[];
        internalNotePresets: {
            name: string;
            id: number;
            teamId: number;
            cancellationReason: string | null;
            createdAt: Date;
        }[];
        managedOrganizations: {
            createdAt: Date;
            managedOrganizationId: number;
            managerOrganizationId: number;
        }[];
    }[]>;
    static findByIdAndParentId({ id, parentId, select, }: {
        id: number;
        parentId: number;
        select?: Prisma.TeamSelect;
    }): Promise<{
        name: string;
        id: number;
        children: {
            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;
            hideTeamProfileLink: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
            bannerUrl: string | null;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            includeManagedEventsInLimits: boolean;
        }[];
        metadata: Prisma.JsonValue;
        webhooks: {
            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;
        }[];
        members: {
            id: number;
            role: import('../../../prisma-client').$Enums.MembershipRole;
            userId: number;
            teamId: number;
            createdAt: Date | null;
            updatedAt: Date | null;
            disableImpersonation: boolean;
            accepted: boolean;
            customRoleId: string | null;
        }[];
        features: {
            teamId: number;
            updatedAt: Date;
            assignedAt: Date;
            assignedBy: string;
            featureId: string;
        }[];
        workflows: {
            name: string;
            id: number;
            time: number | null;
            trigger: import('../../../prisma-client').$Enums.WorkflowTriggerEvents;
            userId: number | null;
            position: number;
            teamId: number | null;
            timeUnit: import('../../../prisma-client').$Enums.TimeUnit | null;
            isActiveOnAll: boolean;
        }[];
        bio: string | null;
        theme: string | null;
        slug: string | null;
        attributes: {
            name: string;
            id: string;
            type: import('../../../prisma-client').$Enums.AttributeType;
            enabled: boolean;
            slug: string;
            teamId: number;
            createdAt: Date;
            updatedAt: Date;
            usersCanEditRelation: boolean;
            isWeightsEnabled: boolean;
            isLocked: boolean;
        }[];
        credentials: {
            key: Prisma.JsonValue;
            id: number;
            type: string;
            userId: number | null;
            teamId: number | null;
            subscriptionId: string | null;
            delegationCredentialId: string | null;
            billingCycleStart: number | null;
            appId: string | null;
            paymentStatus: string | null;
            invalid: boolean | null;
        }[];
        parentId: number | null;
        timeZone: string;
        bookingLimits: Prisma.JsonValue;
        parent: {
            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;
            hideTeamProfileLink: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
            bannerUrl: string | null;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            includeManagedEventsInLimits: boolean;
        } | null;
        _count: {
            members: number;
            eventTypes: number;
            workflows: number;
            verifiedNumbers: number;
            verifiedEmails: number;
            parent: number;
            children: number;
            orgUsers: number;
            inviteTokens: number;
            webhooks: number;
            routingForms: number;
            apiKeys: number;
            credentials: number;
            accessCodes: number;
            organizationSettings: number;
            instantMeetingTokens: number;
            orgProfiles: number;
            dsyncTeamGroupMapping: number;
            platformOAuthClient: number;
            createdByOAuthClient: number;
            platformBilling: number;
            activeOrgWorkflows: number;
            attributes: number;
            delegationCredentials: number;
            domainWideDelegations: number;
            roles: number;
            features: number;
            internalNotePresets: number;
            creditBalance: number;
            organizationOnboarding: number;
            managedOrganization: number;
            managedOrganizations: number;
            filterSegments: number;
        };
        creditBalance: {
            id: string;
            userId: number | null;
            teamId: number | null;
            additionalCredits: number;
            limitReachedAt: Date | null;
            warningSentAt: Date | null;
        } | null;
        organizationSettings: {
            id: number;
            organizationId: number;
            isOrganizationVerified: boolean;
            isOrganizationConfigured: boolean;
            isAdminReviewed: boolean;
            orgAutoAcceptEmail: string;
            isAdminAPIEnabled: boolean;
            allowSEOIndexing: boolean;
            lockEventTypeCreationForUsers: boolean;
            adminGetsNoSlotsNotification: boolean;
            orgProfileRedirectsToVerifiedDomain: boolean;
            disablePhoneOnlySMSNotifications: boolean;
        } | null;
        platformOAuthClient: {
            name: string;
            id: string;
            secret: string;
            logo: string | null;
            permissions: number;
            organizationId: number;
            areCalendarEventsEnabled: boolean;
            createdAt: Date;
            redirectUris: string[];
            bookingRedirectUri: string | null;
            bookingCancelRedirectUri: string | null;
            bookingRescheduleRedirectUri: string | null;
            areEmailsEnabled: boolean;
            areDefaultEventTypesEnabled: boolean;
        }[];
        managedOrganization: {
            createdAt: Date;
            managedOrganizationId: number;
            managerOrganizationId: number;
        } | null;
        platformBilling: {
            id: number;
            subscriptionId: string | null;
            customerId: string;
            priceId: string | null;
            plan: string;
            billingCycleStart: number | null;
            billingCycleEnd: number | null;
            overdue: boolean | null;
            managerBillingId: number | null;
        } | null;
        organizationOnboarding: {
            error: string | null;
            name: string;
            id: string;
            seats: number;
            teams: Prisma.JsonValue;
            logo: string | null;
            bio: string | null;
            slug: string;
            organizationId: number | null;
            stripeCustomerId: string | null;
            billingPeriod: import('../../../prisma-client').$Enums.BillingPeriod;
            createdAt: Date;
            updatedAt: Date;
            isPlatform: boolean;
            createdById: number;
            orgOwnerEmail: string;
            pricePerSeat: number;
            isDomainConfigured: boolean;
            stripeSubscriptionId: string | null;
            stripeSubscriptionItemId: string | null;
            invitedMembers: Prisma.JsonValue;
            isComplete: boolean;
        } | null;
        createdAt: Date;
        weekStart: string;
        hideBranding: boolean;
        timeFormat: number | null;
        brandColor: string | null;
        darkBrandColor: string | null;
        smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
        smsLockReviewedByAdmin: boolean;
        eventTypes: {
            id: number;
            length: number;
            title: string;
            metadata: Prisma.JsonValue;
            description: string | null;
            price: number;
            hidden: boolean;
            currency: string;
            slug: string;
            userId: number | null;
            interfaceLanguage: string | null;
            position: number;
            locations: Prisma.JsonValue;
            offsetStart: number;
            profileId: number | null;
            teamId: number | null;
            useEventLevelSelectedCalendars: boolean;
            eventName: string | null;
            parentId: number | null;
            bookingFields: Prisma.JsonValue;
            timeZone: string | null;
            periodType: import('../../../prisma-client').$Enums.PeriodType;
            periodStartDate: Date | null;
            periodEndDate: Date | null;
            periodDays: number | null;
            periodCountCalendarDays: boolean | null;
            lockTimeZoneToggleOnBookingPage: boolean;
            requiresConfirmation: boolean;
            requiresConfirmationWillBlockSlot: boolean;
            requiresConfirmationForFreeEmail: boolean;
            requiresBookerEmailVerification: boolean;
            canSendCalVideoTranscriptionEmails: boolean;
            autoTranslateDescriptionEnabled: boolean;
            recurringEvent: Prisma.JsonValue;
            disableGuests: boolean;
            hideCalendarNotes: boolean;
            hideCalendarEventDetails: boolean;
            minimumBookingNotice: number;
            beforeEventBuffer: number;
            afterEventBuffer: number;
            seatsPerTimeSlot: number | null;
            onlyShowFirstAvailableSlot: boolean;
            disableCancelling: boolean | null;
            disableRescheduling: boolean | null;
            seatsShowAttendees: boolean | null;
            seatsShowAvailabilityCount: boolean | null;
            schedulingType: import('../../../prisma-client').$Enums.SchedulingType | null;
            scheduleId: number | null;
            allowReschedulingCancelledBookings: boolean | null;
            slotInterval: number | null;
            successRedirectUrl: string | null;
            forwardParamsSuccessRedirect: boolean | null;
            bookingLimits: Prisma.JsonValue;
            durationLimits: Prisma.JsonValue;
            isInstantEvent: boolean;
            instantMeetingExpiryTimeOffsetInSeconds: number;
            instantMeetingScheduleId: number | null;
            instantMeetingParameters: string[];
            assignAllTeamMembers: boolean;
            assignRRMembersUsingSegment: boolean;
            rrSegmentQueryValue: Prisma.JsonValue;
            useEventTypeDestinationCalendarEmail: boolean;
            isRRWeightsEnabled: boolean;
            maxLeadThreshold: number | null;
            includeNoShowInRRCalculation: boolean;
            allowReschedulingPastBookings: boolean;
            hideOrganizerEmail: boolean;
            maxActiveBookingsPerBooker: number | null;
            maxActiveBookingPerBookerOfferReschedule: boolean;
            customReplyToEmail: string | null;
            eventTypeColor: Prisma.JsonValue;
            rescheduleWithSameRoundRobinHost: boolean;
            secondaryEmailId: number | null;
            useBookerTimezone: boolean;
            restrictionScheduleId: number | null;
        }[];
        apiKeys: {
            id: string;
            note: string | null;
            userId: number;
            teamId: number | null;
            createdAt: Date;
            appId: string | null;
            expiresAt: Date | null;
            lastUsedAt: Date | null;
            hashedKey: string;
        }[];
        routingForms: {
            settings: Prisma.JsonValue;
            name: string;
            id: string;
            description: string | null;
            disabled: boolean;
            userId: number;
            fields: Prisma.JsonValue;
            routes: Prisma.JsonValue;
            position: number;
            teamId: number | null;
            createdAt: Date;
            updatedAt: Date;
            updatedById: number | null;
        }[];
        verifiedNumbers: {
            id: number;
            userId: number | null;
            teamId: number | null;
            phoneNumber: string;
        }[];
        verifiedEmails: {
            id: number;
            email: string;
            userId: number | null;
            teamId: number | null;
        }[];
        accessCodes: {
            code: string;
            id: number;
            clientId: string | null;
            userId: number | null;
            teamId: number | null;
            expiresAt: Date;
            scopes: import('../../../prisma-client').$Enums.AccessScope[];
        }[];
        filterSegments: {
            name: string;
            id: number;
            userId: number;
            teamId: number | null;
            createdAt: Date;
            updatedAt: Date;
            scope: import('../../../prisma-client').$Enums.FilterSegmentScope;
            tableIdentifier: string;
            activeFilters: Prisma.JsonValue;
            sorting: Prisma.JsonValue;
            columnVisibility: Prisma.JsonValue;
            columnSizing: Prisma.JsonValue;
            perPage: number;
            searchTerm: string | null;
        }[];
        logoUrl: string | null;
        calVideoLogo: string | null;
        appLogo: string | null;
        appIconLogo: string | null;
        hideTeamProfileLink: boolean;
        isPrivate: boolean;
        hideBookATeamMember: boolean;
        rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
        rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
        bannerUrl: string | null;
        isOrganization: boolean;
        pendingPayment: boolean;
        isPlatform: boolean;
        createdByOAuthClientId: string | null;
        includeManagedEventsInLimits: boolean;
        orgUsers: {
            name: string | null;
            id: number;
            role: import('../../../prisma-client').$Enums.UserPermissionRole;
            metadata: Prisma.JsonValue;
            username: string | null;
            email: string;
            bio: string | null;
            theme: string | null;
            verified: boolean | null;
            locked: boolean;
            organizationId: number | null;
            locale: string | null;
            timeZone: string;
            startTime: number;
            endTime: number;
            creationSource: import('../../../prisma-client').$Enums.CreationSource | null;
            movedToProfileId: number | null;
            emailVerified: Date | null;
            avatarUrl: string | null;
            weekStart: string;
            bufferTime: number;
            hideBranding: boolean;
            appTheme: string | null;
            createdDate: Date;
            trialEndsAt: Date | null;
            lastActiveAt: Date | null;
            defaultScheduleId: number | null;
            completedOnboarding: boolean;
            timeFormat: number | null;
            twoFactorSecret: string | null;
            twoFactorEnabled: boolean;
            backupCodes: string | null;
            identityProvider: import('../../../prisma-client').$Enums.IdentityProvider;
            identityProviderId: string | null;
            invitedTo: number | null;
            brandColor: string | null;
            darkBrandColor: string | null;
            allowDynamicBooking: boolean | null;
            allowSEOIndexing: boolean | null;
            receiveMonthlyDigestEmail: boolean | null;
            disableImpersonation: boolean;
            isPlatformManaged: boolean;
            smsLockState: import('../../../prisma-client').$Enums.SMSLockState;
            smsLockReviewedByAdmin: boolean;
            referralLinkId: string | null;
            whitelistWorkflows: boolean;
        }[];
        inviteTokens: {
            id: number;
            expires: Date;
            identifier: string;
            teamId: number | null;
            secondaryEmailId: number | null;
            token: string;
            createdAt: Date;
            updatedAt: Date;
            expiresInDays: number | null;
        }[];
        instantMeetingTokens: {
            id: number;
            expires: Date;
            teamId: number;
            bookingId: number | null;
            token: string;
            createdAt: Date;
            updatedAt: Date;
        }[];
        orgProfiles: {
            id: number;
            username: string;
            uid: string;
            organizationId: number;
            userId: number;
            createdAt: Date;
            updatedAt: Date;
        }[];
        dsyncTeamGroupMapping: {
            id: number;
            organizationId: number;
            teamId: number;
            directoryId: string;
            groupName: string;
        }[];
        createdByOAuthClient: {
            name: string;
            id: string;
            secret: string;
            logo: string | null;
            permissions: number;
            organizationId: number;
            areCalendarEventsEnabled: boolean;
            createdAt: Date;
            redirectUris: string[];
            bookingRedirectUri: string | null;
            bookingCancelRedirectUri: string | null;
            bookingRescheduleRedirectUri: string | null;
            areEmailsEnabled: boolean;
            areDefaultEventTypesEnabled: boolean;
        } | null;
        activeOrgWorkflows: {
            id: number;
            teamId: number;
            workflowId: number;
        }[];
        delegationCredentials: {
            id: string;
            enabled: boolean;
            domain: string;
            organizationId: number;
            createdAt: Date;
            updatedAt: Date;
            workspacePlatformId: number;
            serviceAccountKey: Prisma.JsonValue;
            lastEnabledAt: Date | null;
            lastDisabledAt: Date | null;
        }[];
        domainWideDelegations: {
            id: string;
            enabled: boolean;
            domain: string;
            organizationId: number;
            createdAt: Date;
            updatedAt: Date;
            workspacePlatformId: number;
            serviceAccountKey: Prisma.JsonValue;
        }[];
        roles: {
            name: string;
            id: string;
            type: import('../../../prisma-client').$Enums.RoleType;
            description: string | null;
            teamId: number | null;
            createdAt: Date;
            updatedAt: Date;
        }[];
        internalNotePresets: {
            name: string;
            id: number;
            teamId: number;
            cancellationReason: string | null;
            createdAt: Date;
        }[];
        managedOrganizations: {
            createdAt: Date;
            managedOrganizationId: number;
            managerOrganizationId: number;
        }[];
    } | null>;
    static deleteById({ id }: {
        id: number;
    }): Promise<{
        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;
        hideTeamProfileLink: boolean;
        isPrivate: boolean;
        hideBookATeamMember: boolean;
        rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
        rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
        bannerUrl: string | null;
        isOrganization: boolean;
        pendingPayment: boolean;
        isPlatform: boolean;
        createdByOAuthClientId: string | null;
        includeManagedEventsInLimits: boolean;
    }>;
    static inviteMemberByToken(token: string, userId: number): Promise<string>;
    static publish(teamId: number): Promise<import('../../../features/ee/billing/teams/team-billing').TeamBillingPublishResponse>;
    static removeMembers(teamIds: number[], memberIds: number[], isOrg?: boolean): Promise<void>;
    static findTeamWithMembers(teamId: number): Promise<{
        id: number;
        metadata: Prisma.JsonValue;
        members: {
            accepted: boolean;
        }[];
        parentId: number | null;
        isOrganization: boolean;
    } | null>;
    static findTeamsByUserId({ userId, includeOrgs }: {
        userId: number;
        includeOrgs?: boolean;
    }): Promise<{
        metadata: {
            defaultConferencingApp?: {
                appSlug?: string | undefined;
                appLink?: string | undefined;
            } | undefined;
            requestedSlug?: string | null | undefined;
            paymentId?: string | undefined;
            subscriptionId?: string | null | undefined;
            subscriptionItemId?: string | null | undefined;
            orgSeats?: number | null | undefined;
            orgPricePerSeat?: number | null | undefined;
            migratedToOrgFrom?: {
                teamSlug?: string | null | undefined;
                lastMigrationTime?: string | undefined;
                reverted?: boolean | undefined;
                lastRevertTime?: string | undefined;
            } | undefined;
            billingPeriod?: import('../../../prisma/zod-utils').BillingPeriod | undefined;
        } | null;
        /** To prevent breaking we only return non-email attached token here, if we have one */
        inviteToken: {
            id: number;
            expires: Date;
            identifier: string;
            teamId: number | null;
            secondaryEmailId: number | null;
            token: string;
            createdAt: Date;
            updatedAt: Date;
            expiresInDays: number | null;
        } | undefined;
        name: string;
        id: number;
        slug: string | null;
        parentId: number | null;
        parent: {
            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;
            hideTeamProfileLink: boolean;
            isPrivate: boolean;
            hideBookATeamMember: boolean;
            rrResetInterval: import('../../../prisma-client').$Enums.RRResetInterval | null;
            rrTimestampBasis: import('../../../prisma-client').$Enums.RRTimestampBasis;
            bannerUrl: string | null;
            isOrganization: boolean;
            pendingPayment: boolean;
            isPlatform: boolean;
            createdByOAuthClientId: string | null;
            includeManagedEventsInLimits: boolean;
        } | null;
        logoUrl: string | null;
        isOrganization: boolean;
        role: import('../../../prisma-client').$Enums.MembershipRole;
        accepted: boolean;
    }[]>;
    static findTeamWithOrganizationSettings(teamId: number): Promise<{
        parent: {
            organizationSettings: {
                id: number;
                organizationId: number;
                isOrganizationVerified: boolean;
                isOrganizationConfigured: boolean;
                isAdminReviewed: boolean;
                orgAutoAcceptEmail: string;
                isAdminAPIEnabled: boolean;
                allowSEOIndexing: boolean;
                lockEventTypeCreationForUsers: boolean;
                adminGetsNoSlotsNotification: boolean;
                orgProfileRedirectsToVerifiedDomain: boolean;
                disablePhoneOnlySMSNotifications: boolean;
            } | null;
            isOrganization: boolean;
        } | null;
    } | null>;
}
export {};
//# sourceMappingURL=team.d.ts.map