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;
    }>;
    static findById({ id }: {
        id: string;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
    } | 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;
    }, "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;
    }, "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;
    }, "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;
    }[]>;
    static updateById({ id, data, }: {
        id: string;
        data: Partial<{
            workspacePlatformId: number;
            domain: string;
            enabled: boolean;
            organizationId: number;
        }>;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        workspacePlatform: {
            name: string;
            slug: string;
        };
        createdAt: Date;
        updatedAt: Date;
    }>;
    static deleteById({ id }: {
        id: string;
    }): Promise<{
        id: string;
        enabled: boolean;
        domain: string;
        organizationId: number;
        createdAt: Date;
        updatedAt: Date;
        workspacePlatformId: number;
        serviceAccountKey: Prisma.JsonValue;
    }>;
    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;
    }[]>;
}
//# sourceMappingURL=delegationCredential.d.ts.map