import type { Prisma } from '../../../prisma-client';
import { type ServiceAccountKey } from '../serviceAccountKey';
export type { ServiceAccountKey };
export declare class DelegationCredentialRepository {
    private static encryptServiceAccountKey;
    private static decryptServiceAccountKey;
    private static withParsedServiceAccountKey;
    static create(data: {
        domain: string;
        enabled: boolean;
        organizationId: number;
        workspacePlatformId: number;
        serviceAccountKey: ServiceAccountKey;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        createdAt: Date;
        updatedAt: Date;
        workspacePlatformId: number;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }>;
    static findById({ id }: {
        id: string;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    } | null>;
    static findUniqueByOrganizationIdAndDomainIncludeSensitiveServiceAccountKey({ organizationId, domain, }: {
        organizationId: number;
        domain: string;
    }): Promise<(Omit<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }, "serviceAccountKey"> & {
        serviceAccountKey: import("zod").objectOutputType<{
            private_key: import("zod").ZodString;
            client_email: import("zod").ZodOptional<import("zod").ZodString>;
            client_id: import("zod").ZodString;
            tenant_id: import("zod").ZodOptional<import("zod").ZodString>;
        }, import("zod").ZodTypeAny, "passthrough"> | null;
    }) | null>;
    static findByIdIncludeSensitiveServiceAccountKey({ id }: {
        id: string;
    }): Promise<(Omit<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }, "serviceAccountKey"> & {
        serviceAccountKey: import("zod").objectOutputType<{
            private_key: import("zod").ZodString;
            client_email: import("zod").ZodOptional<import("zod").ZodString>;
            client_id: import("zod").ZodString;
            tenant_id: import("zod").ZodOptional<import("zod").ZodString>;
        }, import("zod").ZodTypeAny, "passthrough"> | null;
    }) | null>;
    static findUniqueByOrgMemberEmailIncludeSensitiveServiceAccountKey({ email }: {
        email: string;
    }): Promise<(Omit<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }, "serviceAccountKey"> & {
        serviceAccountKey: import("zod").objectOutputType<{
            private_key: import("zod").ZodString;
            client_email: import("zod").ZodOptional<import("zod").ZodString>;
            client_id: import("zod").ZodString;
            tenant_id: import("zod").ZodOptional<import("zod").ZodString>;
        }, import("zod").ZodTypeAny, "passthrough"> | null;
    }) | null>;
    static findAllByDomain({ domain }: {
        domain: string;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }[]>;
    static updateById({ id, data, }: {
        id: string;
        data: Partial<{
            workspacePlatformId: number;
            domain: string;
            enabled: boolean;
            organizationId: number;
            lastEnabledAt: Date;
            lastDisabledAt: Date;
        }>;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }>;
    static deleteById({ id }: {
        id: string;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        createdAt: Date;
        updatedAt: Date;
        workspacePlatformId: number;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }>;
    static findByOrgIdIncludeSensitiveServiceAccountKey({ organizationId }: {
        organizationId: number;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            id: number;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }[]>;
    static findAllEnabledIncludeDelegatedMembers(): Promise<{
        organization: {
            delegatedMembers: {
                user: {
                    id: number;
                    email: string;
                };
                id: number;
                userId: number;
                accepted: boolean;
            }[];
            members: {
                user: {
                    id: number;
                    email: string;
                };
                id: number;
                userId: number;
                accepted: boolean;
            }[];
            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;
        };
        workspacePlatform: {
            slug: string;
        };
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        createdAt: Date;
        updatedAt: Date;
        workspacePlatformId: number;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }[]>;
    static findAllDisabledAndIncludeNextBatchOfMembersToProcess(): Promise<{
        organization: {
            members: {
                user: {
                    id: number;
                    email: string;
                };
                id: number;
                userId: number;
                accepted: boolean;
            }[];
            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;
        };
        workspacePlatform: {
            slug: string;
        };
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        createdAt: Date;
        updatedAt: Date;
        workspacePlatformId: number;
        serviceAccountKey: Prisma.JsonValue;
        lastEnabledAt: Date | null;
        lastDisabledAt: Date | null;
    }[]>;
}
//# sourceMappingURL=delegationCredential.d.ts.map