import { Prisma, PrismaClient } from "@prisma/client";
export declare class OrganizationService {
    static createOrganization(prisma: PrismaClient, userId: string, name: string, slug: string, domain?: string, subdomain?: string): Promise<{
        settings: Prisma.JsonValue | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        name: string;
        deletedAt: Date | null;
        trialDays: number;
        slug: string;
        subdomain: string | null;
        domain: string | null;
        isBlocked: boolean;
        trialEnd: Date | null;
        trialStart: Date | null;
        isTrialActive: boolean;
        paymentStatus: import("@prisma/client").$Enums.PaymentStatus;
    }>;
    static provisionTenantSchema(prisma: PrismaClient, organizationSlug: string): Promise<void>;
    static listOrganizations(prisma: PrismaClient, userId: string, page: number, limit: number): Promise<{
        data: any[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    static getOrganization(prisma: PrismaClient, userId: string, organizationId: string): Promise<{
        settings: Prisma.JsonValue | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        name: string;
        deletedAt: Date | null;
        trialDays: number;
        slug: string;
        subdomain: string | null;
        domain: string | null;
        isBlocked: boolean;
        trialEnd: Date | null;
        trialStart: Date | null;
        isTrialActive: boolean;
        paymentStatus: import("@prisma/client").$Enums.PaymentStatus;
    }>;
    static updateOrganization(prisma: PrismaClient, userId: string, organizationId: string, name?: string, domain?: string, subdomain?: string): Promise<{
        settings: Prisma.JsonValue | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        name: string;
        deletedAt: Date | null;
        trialDays: number;
        slug: string;
        subdomain: string | null;
        domain: string | null;
        isBlocked: boolean;
        trialEnd: Date | null;
        trialStart: Date | null;
        isTrialActive: boolean;
        paymentStatus: import("@prisma/client").$Enums.PaymentStatus;
    }>;
    static deleteOrganization(prisma: PrismaClient, userId: string, organizationId: string): Promise<void>;
    static getOrganizationSettings(prisma: PrismaClient, userId: string, organizationId: string): Promise<{
        settings: string | number | true | Prisma.JsonObject | Prisma.JsonArray;
    }>;
    static updateOrganizationSettings(prisma: PrismaClient, userId: string, organizationId: string, settings: any): Promise<{
        settings: Prisma.JsonValue;
    }>;
    static getOrganizationStatus(prisma: PrismaClient, userId: string, organizationId: string): Promise<{
        trialStart: Date | null;
        trialEnd: Date | null;
        trialDaysLeft: number | null;
        isBlocked: boolean;
        activePlan: {
            id: string;
            description: string;
            createdAt: Date;
            updatedAt: Date;
            name: string;
            price: number;
            type: import("@prisma/client").$Enums.PlanType;
            interval: import("@prisma/client").$Enums.BillingInterval;
            trialDays: number;
            maxUsers: number | null;
            maxProjects: number | null;
            features: Prisma.JsonValue | null;
            isActive: boolean;
        } | null;
    }>;
}
//# sourceMappingURL=OrganizationService.d.ts.map