import { Prisma } from '../../../prisma-client';
import type { TServiceAccountKeySchema } from '../../../prisma/zod-utils';
type WorkspacePlatformServiceAccountKey = TServiceAccountKeySchema | null;
export declare class WorkspacePlatformRepository {
    private static withParsedServiceAccountKey;
    static create(data: {
        slug: string;
        name: string;
        description: string;
        defaultServiceAccountKey?: WorkspacePlatformServiceAccountKey;
        enabled: boolean;
    }): Promise<{
        name: string;
        id: number;
        description: string;
        enabled: boolean;
        slug: string;
        createdAt: Date;
        updatedAt: Date;
        defaultServiceAccountKey: Prisma.JsonValue;
    }>;
    static findAll(): Promise<{
        name: string;
        id: number;
        description: string;
        enabled: boolean;
        slug: string;
    }[]>;
    static findAllBySlug({ slug }: {
        slug: string;
    }): Promise<{
        name: string;
        id: number;
        description: string;
        enabled: boolean;
        slug: string;
    }[]>;
    static findBySlug({ slug }: {
        slug: string;
    }): Promise<{
        name: string;
        id: number;
        description: string;
        enabled: boolean;
        slug: string;
    } | null>;
    static findBySlugIncludeSensitiveServiceAccountKey({ slug }: {
        slug: string;
    }): Promise<({
        name: string;
        id: number;
        description: string;
        enabled: boolean;
        slug: string;
        defaultServiceAccountKey: Prisma.JsonValue;
    } & {
        defaultServiceAccountKey: 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>;
    static updateById({ id, data, }: {
        id: number;
        data: Partial<{
            slug: string;
            name: string;
            description: string;
            defaultServiceAccountKey: TServiceAccountKeySchema;
            enabled: boolean;
        }>;
    }): Promise<{
        name: string;
        id: number;
        description: string;
        enabled: boolean;
        slug: string;
        createdAt: Date;
        updatedAt: Date;
        defaultServiceAccountKey: Prisma.JsonValue;
    }>;
}
export {};
//# sourceMappingURL=workspacePlatform.d.ts.map