import { z } from 'zod';
import { TenantStatus, TenantType } from '../domains/tenant';
export declare const TenantIdSchema: z.ZodBranded<z.ZodString, "TenantId">;
export declare const DomainNameSchema: z.ZodBranded<z.ZodString, "DomainName">;
export declare const TenantStatusSchema: z.ZodNativeEnum<typeof TenantStatus>;
export declare const TenantTypeSchema: z.ZodNativeEnum<typeof TenantType>;
export declare const TenantIdValueObjectSchema: z.ZodObject<{
    value: z.ZodBranded<z.ZodString, "TenantId">;
    format: z.ZodEnum<["uuid", "auto-increment", "custom"]>;
    createdAt: z.ZodDate;
    metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
    value: string & z.BRAND<"TenantId">;
    createdAt: Date;
    format: "uuid" | "custom" | "auto-increment";
    metadata?: Record<string, unknown> | undefined;
}, {
    value: string;
    createdAt: Date;
    format: "uuid" | "custom" | "auto-increment";
    metadata?: Record<string, unknown> | undefined;
}>;
export declare const DomainNameValueObjectSchema: z.ZodObject<{
    value: z.ZodBranded<z.ZodString, "DomainName">;
    isVerified: z.ZodBoolean;
    verifiedAt: z.ZodOptional<z.ZodDate>;
    sslCertificate: z.ZodOptional<z.ZodObject<{
        issuer: z.ZodString;
        validFrom: z.ZodDate;
        validTo: z.ZodDate;
        serialNumber: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        issuer: string;
        validFrom: Date;
        validTo: Date;
        serialNumber: string;
    }, {
        issuer: string;
        validFrom: Date;
        validTo: Date;
        serialNumber: string;
    }>>;
    createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
    value: string & z.BRAND<"DomainName">;
    createdAt: Date;
    isVerified: boolean;
    verifiedAt?: Date | undefined;
    sslCertificate?: {
        issuer: string;
        validFrom: Date;
        validTo: Date;
        serialNumber: string;
    } | undefined;
}, {
    value: string;
    createdAt: Date;
    isVerified: boolean;
    verifiedAt?: Date | undefined;
    sslCertificate?: {
        issuer: string;
        validFrom: Date;
        validTo: Date;
        serialNumber: string;
    } | undefined;
}>;
export declare const TenantConfigSchema: z.ZodObject<{
    id: z.ZodBranded<z.ZodString, "TenantId">;
    features: z.ZodObject<{
        multiTenancy: z.ZodBoolean;
        sso: z.ZodBoolean;
        auditLogging: z.ZodBoolean;
        backup: z.ZodBoolean;
        customBranding: z.ZodBoolean;
        apiAccess: z.ZodBoolean;
        webhookSupport: z.ZodBoolean;
        advancedAnalytics: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    }, {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    }>;
    limits: z.ZodObject<{
        maxUsers: z.ZodNumber;
        maxStorage: z.ZodNumber;
        maxApiCalls: z.ZodNumber;
        maxBackups: z.ZodNumber;
        maxCustomDomains: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    }, {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    }>;
    settings: z.ZodObject<{
        timezone: z.ZodString;
        locale: z.ZodString;
        dateFormat: z.ZodString;
        timeFormat: z.ZodString;
        currency: z.ZodString;
        theme: z.ZodOptional<z.ZodObject<{
            primaryColor: z.ZodString;
            secondaryColor: z.ZodString;
            logo: z.ZodOptional<z.ZodString>;
            favicon: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        }, {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        }>>;
        notifications: z.ZodObject<{
            email: z.ZodBoolean;
            sms: z.ZodBoolean;
            push: z.ZodBoolean;
            webhook: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        }, {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        }>;
        security: z.ZodObject<{
            passwordPolicy: z.ZodObject<{
                minLength: z.ZodNumber;
                requireUppercase: z.ZodBoolean;
                requireLowercase: z.ZodBoolean;
                requireNumbers: z.ZodBoolean;
                requireSpecialChars: z.ZodBoolean;
                maxAge: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            }, {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            }>;
            sessionTimeout: z.ZodNumber;
            maxLoginAttempts: z.ZodNumber;
            twoFactorRequired: z.ZodBoolean;
            ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        }, {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        }>;
        integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
            enabled: z.ZodBoolean;
            apiKey: z.ZodOptional<z.ZodString>;
            webhookUrl: z.ZodOptional<z.ZodString>;
            settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
            settings?: Record<string, unknown> | undefined;
            apiKey?: string | undefined;
            webhookUrl?: string | undefined;
        }, {
            enabled: boolean;
            settings?: Record<string, unknown> | undefined;
            apiKey?: string | undefined;
            webhookUrl?: string | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
        integrations?: Record<string, {
            enabled: boolean;
            settings?: Record<string, unknown> | undefined;
            apiKey?: string | undefined;
            webhookUrl?: string | undefined;
        }> | undefined;
    }, {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
        integrations?: Record<string, {
            enabled: boolean;
            settings?: Record<string, unknown> | undefined;
            apiKey?: string | undefined;
            webhookUrl?: string | undefined;
        }> | undefined;
    }>;
    createdAt: z.ZodDate;
    updatedAt: z.ZodDate;
    createdBy: z.ZodOptional<z.ZodString>;
    updatedBy: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    id: string & z.BRAND<"TenantId">;
    createdAt: Date;
    updatedAt: Date;
    features: {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    };
    limits: {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    };
    settings: {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
        integrations?: Record<string, {
            enabled: boolean;
            settings?: Record<string, unknown> | undefined;
            apiKey?: string | undefined;
            webhookUrl?: string | undefined;
        }> | undefined;
    };
    createdBy?: string | undefined;
    updatedBy?: string | undefined;
}, {
    id: string;
    createdAt: Date;
    updatedAt: Date;
    features: {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    };
    limits: {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    };
    settings: {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
        integrations?: Record<string, {
            enabled: boolean;
            settings?: Record<string, unknown> | undefined;
            apiKey?: string | undefined;
            webhookUrl?: string | undefined;
        }> | undefined;
    };
    createdBy?: string | undefined;
    updatedBy?: string | undefined;
}>;
export declare const TenantSchema: z.ZodObject<{
    id: z.ZodBranded<z.ZodString, "TenantId">;
    name: z.ZodString;
    slug: z.ZodString;
    domain: z.ZodObject<{
        value: z.ZodBranded<z.ZodString, "DomainName">;
        isVerified: z.ZodBoolean;
        verifiedAt: z.ZodOptional<z.ZodDate>;
        sslCertificate: z.ZodOptional<z.ZodObject<{
            issuer: z.ZodString;
            validFrom: z.ZodDate;
            validTo: z.ZodDate;
            serialNumber: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        }, {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        }>>;
        createdAt: z.ZodDate;
    }, "strip", z.ZodTypeAny, {
        value: string & z.BRAND<"DomainName">;
        createdAt: Date;
        isVerified: boolean;
        verifiedAt?: Date | undefined;
        sslCertificate?: {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        } | undefined;
    }, {
        value: string;
        createdAt: Date;
        isVerified: boolean;
        verifiedAt?: Date | undefined;
        sslCertificate?: {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        } | undefined;
    }>;
    type: z.ZodNativeEnum<typeof TenantType>;
    status: z.ZodNativeEnum<typeof TenantStatus>;
    config: z.ZodObject<{
        id: z.ZodBranded<z.ZodString, "TenantId">;
        features: z.ZodObject<{
            multiTenancy: z.ZodBoolean;
            sso: z.ZodBoolean;
            auditLogging: z.ZodBoolean;
            backup: z.ZodBoolean;
            customBranding: z.ZodBoolean;
            apiAccess: z.ZodBoolean;
            webhookSupport: z.ZodBoolean;
            advancedAnalytics: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        }, {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        }>;
        limits: z.ZodObject<{
            maxUsers: z.ZodNumber;
            maxStorage: z.ZodNumber;
            maxApiCalls: z.ZodNumber;
            maxBackups: z.ZodNumber;
            maxCustomDomains: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        }, {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        }>;
        settings: z.ZodObject<{
            timezone: z.ZodString;
            locale: z.ZodString;
            dateFormat: z.ZodString;
            timeFormat: z.ZodString;
            currency: z.ZodString;
            theme: z.ZodOptional<z.ZodObject<{
                primaryColor: z.ZodString;
                secondaryColor: z.ZodString;
                logo: z.ZodOptional<z.ZodString>;
                favicon: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            }, {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            }>>;
            notifications: z.ZodObject<{
                email: z.ZodBoolean;
                sms: z.ZodBoolean;
                push: z.ZodBoolean;
                webhook: z.ZodBoolean;
            }, "strip", z.ZodTypeAny, {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            }, {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            }>;
            security: z.ZodObject<{
                passwordPolicy: z.ZodObject<{
                    minLength: z.ZodNumber;
                    requireUppercase: z.ZodBoolean;
                    requireLowercase: z.ZodBoolean;
                    requireNumbers: z.ZodBoolean;
                    requireSpecialChars: z.ZodBoolean;
                    maxAge: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                }, {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                }>;
                sessionTimeout: z.ZodNumber;
                maxLoginAttempts: z.ZodNumber;
                twoFactorRequired: z.ZodBoolean;
                ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            }, "strip", z.ZodTypeAny, {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            }, {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            }>;
            integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                enabled: z.ZodBoolean;
                apiKey: z.ZodOptional<z.ZodString>;
                webhookUrl: z.ZodOptional<z.ZodString>;
                settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, "strip", z.ZodTypeAny, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }>>>;
        }, "strip", z.ZodTypeAny, {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        }, {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        }>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
        createdBy: z.ZodOptional<z.ZodString>;
        updatedBy: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string & z.BRAND<"TenantId">;
        createdAt: Date;
        updatedAt: Date;
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
    }, {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
    }>;
    contact: z.ZodObject<{
        email: z.ZodString;
        phone: z.ZodOptional<z.ZodString>;
        address: z.ZodOptional<z.ZodObject<{
            street: z.ZodString;
            city: z.ZodString;
            state: z.ZodString;
            postalCode: z.ZodString;
            country: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        }, {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        }>>;
    }, "strip", z.ZodTypeAny, {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    }, {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    }>;
    billing: z.ZodObject<{
        plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
        billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
        nextBillingDate: z.ZodDate;
        lastBillingDate: z.ZodOptional<z.ZodDate>;
        totalAmount: z.ZodNumber;
        currency: z.ZodString;
        paymentMethod: z.ZodOptional<z.ZodObject<{
            type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
            last4: z.ZodOptional<z.ZodString>;
            expiryDate: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "paypal" | "credit_card" | "bank_transfer";
            last4?: string | undefined;
            expiryDate?: string | undefined;
        }, {
            type: "paypal" | "credit_card" | "bank_transfer";
            last4?: string | undefined;
            expiryDate?: string | undefined;
        }>>;
        invoices: z.ZodOptional<z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            amount: z.ZodNumber;
            currency: z.ZodString;
            status: z.ZodEnum<["pending", "paid", "overdue", "cancelled"]>;
            dueDate: z.ZodDate;
            paidAt: z.ZodOptional<z.ZodDate>;
        }, "strip", z.ZodTypeAny, {
            id: string;
            status: "pending" | "cancelled" | "paid" | "overdue";
            amount: number;
            currency: string;
            dueDate: Date;
            paidAt?: Date | undefined;
        }, {
            id: string;
            status: "pending" | "cancelled" | "paid" | "overdue";
            amount: number;
            currency: string;
            dueDate: Date;
            paidAt?: Date | undefined;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            last4?: string | undefined;
            expiryDate?: string | undefined;
        } | undefined;
        lastBillingDate?: Date | undefined;
        invoices?: {
            id: string;
            status: "pending" | "cancelled" | "paid" | "overdue";
            amount: number;
            currency: string;
            dueDate: Date;
            paidAt?: Date | undefined;
        }[] | undefined;
    }, {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            last4?: string | undefined;
            expiryDate?: string | undefined;
        } | undefined;
        lastBillingDate?: Date | undefined;
        invoices?: {
            id: string;
            status: "pending" | "cancelled" | "paid" | "overdue";
            amount: number;
            currency: string;
            dueDate: Date;
            paidAt?: Date | undefined;
        }[] | undefined;
    }>;
    subscription: z.ZodObject<{
        startDate: z.ZodDate;
        endDate: z.ZodOptional<z.ZodDate>;
        isActive: z.ZodBoolean;
        autoRenew: z.ZodBoolean;
        trialEndsAt: z.ZodOptional<z.ZodDate>;
        cancelledAt: z.ZodOptional<z.ZodDate>;
    }, "strip", z.ZodTypeAny, {
        startDate: Date;
        isActive: boolean;
        autoRenew: boolean;
        endDate?: Date | undefined;
        trialEndsAt?: Date | undefined;
        cancelledAt?: Date | undefined;
    }, {
        startDate: Date;
        isActive: boolean;
        autoRenew: boolean;
        endDate?: Date | undefined;
        trialEndsAt?: Date | undefined;
        cancelledAt?: Date | undefined;
    }>;
    usage: z.ZodObject<{
        activeUsers: z.ZodNumber;
        storageUsed: z.ZodNumber;
        apiCallsThisMonth: z.ZodNumber;
        lastActivityAt: z.ZodOptional<z.ZodDate>;
    }, "strip", z.ZodTypeAny, {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
        lastActivityAt?: Date | undefined;
    }, {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
        lastActivityAt?: Date | undefined;
    }>;
    createdAt: z.ZodDate;
    updatedAt: z.ZodDate;
    createdBy: z.ZodOptional<z.ZodString>;
    updatedBy: z.ZodOptional<z.ZodString>;
    deletedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
    type: TenantType;
    id: string & z.BRAND<"TenantId">;
    createdAt: Date;
    updatedAt: Date;
    status: TenantStatus;
    name: string;
    slug: string;
    domain: {
        value: string & z.BRAND<"DomainName">;
        createdAt: Date;
        isVerified: boolean;
        verifiedAt?: Date | undefined;
        sslCertificate?: {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        } | undefined;
    };
    config: {
        id: string & z.BRAND<"TenantId">;
        createdAt: Date;
        updatedAt: Date;
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
    };
    contact: {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    };
    billing: {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            last4?: string | undefined;
            expiryDate?: string | undefined;
        } | undefined;
        lastBillingDate?: Date | undefined;
        invoices?: {
            id: string;
            status: "pending" | "cancelled" | "paid" | "overdue";
            amount: number;
            currency: string;
            dueDate: Date;
            paidAt?: Date | undefined;
        }[] | undefined;
    };
    subscription: {
        startDate: Date;
        isActive: boolean;
        autoRenew: boolean;
        endDate?: Date | undefined;
        trialEndsAt?: Date | undefined;
        cancelledAt?: Date | undefined;
    };
    usage: {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
        lastActivityAt?: Date | undefined;
    };
    createdBy?: string | undefined;
    updatedBy?: string | undefined;
    deletedAt?: Date | undefined;
}, {
    type: TenantType;
    id: string;
    createdAt: Date;
    updatedAt: Date;
    status: TenantStatus;
    name: string;
    slug: string;
    domain: {
        value: string;
        createdAt: Date;
        isVerified: boolean;
        verifiedAt?: Date | undefined;
        sslCertificate?: {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        } | undefined;
    };
    config: {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
    };
    contact: {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    };
    billing: {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            last4?: string | undefined;
            expiryDate?: string | undefined;
        } | undefined;
        lastBillingDate?: Date | undefined;
        invoices?: {
            id: string;
            status: "pending" | "cancelled" | "paid" | "overdue";
            amount: number;
            currency: string;
            dueDate: Date;
            paidAt?: Date | undefined;
        }[] | undefined;
    };
    subscription: {
        startDate: Date;
        isActive: boolean;
        autoRenew: boolean;
        endDate?: Date | undefined;
        trialEndsAt?: Date | undefined;
        cancelledAt?: Date | undefined;
    };
    usage: {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
        lastActivityAt?: Date | undefined;
    };
    createdBy?: string | undefined;
    updatedBy?: string | undefined;
    deletedAt?: Date | undefined;
}>;
export declare const CreateTenantRequestSchema: z.ZodObject<{
    name: z.ZodString;
    slug: z.ZodString;
    domain: z.ZodString;
    type: z.ZodNativeEnum<typeof TenantType>;
    contact: z.ZodObject<{
        email: z.ZodString;
        phone: z.ZodOptional<z.ZodString>;
        address: z.ZodOptional<z.ZodObject<{
            street: z.ZodString;
            city: z.ZodString;
            state: z.ZodString;
            postalCode: z.ZodString;
            country: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        }, {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        }>>;
    }, "strip", z.ZodTypeAny, {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    }, {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    }>;
    billing: z.ZodObject<{
        plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
        billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
        paymentMethod: z.ZodOptional<z.ZodObject<{
            type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
            token: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        }, {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        plan: "basic" | "professional" | "enterprise" | "free";
        billingCycle: "monthly" | "quarterly" | "annually";
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
    }, {
        plan: "basic" | "professional" | "enterprise" | "free";
        billingCycle: "monthly" | "quarterly" | "annually";
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
    }>;
    config: z.ZodOptional<z.ZodObject<{
        features: z.ZodOptional<z.ZodObject<{
            multiTenancy: z.ZodOptional<z.ZodBoolean>;
            sso: z.ZodOptional<z.ZodBoolean>;
            auditLogging: z.ZodOptional<z.ZodBoolean>;
            backup: z.ZodOptional<z.ZodBoolean>;
            customBranding: z.ZodOptional<z.ZodBoolean>;
            apiAccess: z.ZodOptional<z.ZodBoolean>;
            webhookSupport: z.ZodOptional<z.ZodBoolean>;
            advancedAnalytics: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        }, {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        }>>;
        limits: z.ZodOptional<z.ZodObject<{
            maxUsers: z.ZodOptional<z.ZodNumber>;
            maxStorage: z.ZodOptional<z.ZodNumber>;
            maxApiCalls: z.ZodOptional<z.ZodNumber>;
            maxBackups: z.ZodOptional<z.ZodNumber>;
            maxCustomDomains: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        }, {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        }>>;
        settings: z.ZodOptional<z.ZodObject<{
            timezone: z.ZodOptional<z.ZodString>;
            locale: z.ZodOptional<z.ZodString>;
            dateFormat: z.ZodOptional<z.ZodString>;
            timeFormat: z.ZodOptional<z.ZodString>;
            currency: z.ZodOptional<z.ZodString>;
            theme: z.ZodOptional<z.ZodObject<{
                primaryColor: z.ZodOptional<z.ZodString>;
                secondaryColor: z.ZodOptional<z.ZodString>;
                logo: z.ZodOptional<z.ZodString>;
                favicon: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            }, {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            }>>;
            notifications: z.ZodOptional<z.ZodObject<{
                email: z.ZodOptional<z.ZodBoolean>;
                sms: z.ZodOptional<z.ZodBoolean>;
                push: z.ZodOptional<z.ZodBoolean>;
                webhook: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            }, {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            }>>;
            security: z.ZodOptional<z.ZodObject<{
                passwordPolicy: z.ZodOptional<z.ZodObject<{
                    minLength: z.ZodOptional<z.ZodNumber>;
                    requireUppercase: z.ZodOptional<z.ZodBoolean>;
                    requireLowercase: z.ZodOptional<z.ZodBoolean>;
                    requireNumbers: z.ZodOptional<z.ZodBoolean>;
                    requireSpecialChars: z.ZodOptional<z.ZodBoolean>;
                    maxAge: z.ZodOptional<z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                }, {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                }>>;
                sessionTimeout: z.ZodOptional<z.ZodNumber>;
                maxLoginAttempts: z.ZodOptional<z.ZodNumber>;
                twoFactorRequired: z.ZodOptional<z.ZodBoolean>;
                ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            }, "strip", z.ZodTypeAny, {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            }, {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        }, {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    }, {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    type: TenantType;
    name: string;
    slug: string;
    domain: string;
    contact: {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    };
    billing: {
        plan: "basic" | "professional" | "enterprise" | "free";
        billingCycle: "monthly" | "quarterly" | "annually";
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
    };
    config?: {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    } | undefined;
}, {
    type: TenantType;
    name: string;
    slug: string;
    domain: string;
    contact: {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    };
    billing: {
        plan: "basic" | "professional" | "enterprise" | "free";
        billingCycle: "monthly" | "quarterly" | "annually";
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
    };
    config?: {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    } | undefined;
}>;
export declare const UpdateTenantRequestSchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    slug: z.ZodOptional<z.ZodString>;
    domain: z.ZodOptional<z.ZodString>;
    type: z.ZodOptional<z.ZodNativeEnum<typeof TenantType>>;
    status: z.ZodOptional<z.ZodNativeEnum<typeof TenantStatus>>;
    contact: z.ZodOptional<z.ZodObject<{
        email: z.ZodString;
        phone: z.ZodOptional<z.ZodString>;
        address: z.ZodOptional<z.ZodObject<{
            street: z.ZodString;
            city: z.ZodString;
            state: z.ZodString;
            postalCode: z.ZodString;
            country: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        }, {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        }>>;
    }, "strip", z.ZodTypeAny, {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    }, {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    }>>;
    billing: z.ZodOptional<z.ZodObject<{
        plan: z.ZodOptional<z.ZodEnum<["free", "basic", "professional", "enterprise"]>>;
        billingCycle: z.ZodOptional<z.ZodEnum<["monthly", "quarterly", "annually"]>>;
        paymentMethod: z.ZodOptional<z.ZodObject<{
            type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
            token: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        }, {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
        plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
        billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
    }, {
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
        plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
        billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
    }>>;
    config: z.ZodOptional<z.ZodObject<{
        features: z.ZodOptional<z.ZodObject<{
            multiTenancy: z.ZodOptional<z.ZodBoolean>;
            sso: z.ZodOptional<z.ZodBoolean>;
            auditLogging: z.ZodOptional<z.ZodBoolean>;
            backup: z.ZodOptional<z.ZodBoolean>;
            customBranding: z.ZodOptional<z.ZodBoolean>;
            apiAccess: z.ZodOptional<z.ZodBoolean>;
            webhookSupport: z.ZodOptional<z.ZodBoolean>;
            advancedAnalytics: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        }, {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        }>>;
        limits: z.ZodOptional<z.ZodObject<{
            maxUsers: z.ZodOptional<z.ZodNumber>;
            maxStorage: z.ZodOptional<z.ZodNumber>;
            maxApiCalls: z.ZodOptional<z.ZodNumber>;
            maxBackups: z.ZodOptional<z.ZodNumber>;
            maxCustomDomains: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        }, {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        }>>;
        settings: z.ZodOptional<z.ZodObject<{
            timezone: z.ZodOptional<z.ZodString>;
            locale: z.ZodOptional<z.ZodString>;
            dateFormat: z.ZodOptional<z.ZodString>;
            timeFormat: z.ZodOptional<z.ZodString>;
            currency: z.ZodOptional<z.ZodString>;
            theme: z.ZodOptional<z.ZodObject<{
                primaryColor: z.ZodOptional<z.ZodString>;
                secondaryColor: z.ZodOptional<z.ZodString>;
                logo: z.ZodOptional<z.ZodString>;
                favicon: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            }, {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            }>>;
            notifications: z.ZodOptional<z.ZodObject<{
                email: z.ZodOptional<z.ZodBoolean>;
                sms: z.ZodOptional<z.ZodBoolean>;
                push: z.ZodOptional<z.ZodBoolean>;
                webhook: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            }, {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            }>>;
            security: z.ZodOptional<z.ZodObject<{
                passwordPolicy: z.ZodOptional<z.ZodObject<{
                    minLength: z.ZodOptional<z.ZodNumber>;
                    requireUppercase: z.ZodOptional<z.ZodBoolean>;
                    requireLowercase: z.ZodOptional<z.ZodBoolean>;
                    requireNumbers: z.ZodOptional<z.ZodBoolean>;
                    requireSpecialChars: z.ZodOptional<z.ZodBoolean>;
                    maxAge: z.ZodOptional<z.ZodNumber>;
                }, "strip", z.ZodTypeAny, {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                }, {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                }>>;
                sessionTimeout: z.ZodOptional<z.ZodNumber>;
                maxLoginAttempts: z.ZodOptional<z.ZodNumber>;
                twoFactorRequired: z.ZodOptional<z.ZodBoolean>;
                ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            }, "strip", z.ZodTypeAny, {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            }, {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        }, {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    }, {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    type?: TenantType | undefined;
    status?: TenantStatus | undefined;
    name?: string | undefined;
    slug?: string | undefined;
    domain?: string | undefined;
    config?: {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    } | undefined;
    contact?: {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    } | undefined;
    billing?: {
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
        plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
        billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
    } | undefined;
}, {
    type?: TenantType | undefined;
    status?: TenantStatus | undefined;
    name?: string | undefined;
    slug?: string | undefined;
    domain?: string | undefined;
    config?: {
        features?: {
            multiTenancy?: boolean | undefined;
            sso?: boolean | undefined;
            auditLogging?: boolean | undefined;
            backup?: boolean | undefined;
            customBranding?: boolean | undefined;
            apiAccess?: boolean | undefined;
            webhookSupport?: boolean | undefined;
            advancedAnalytics?: boolean | undefined;
        } | undefined;
        limits?: {
            maxUsers?: number | undefined;
            maxStorage?: number | undefined;
            maxApiCalls?: number | undefined;
            maxBackups?: number | undefined;
            maxCustomDomains?: number | undefined;
        } | undefined;
        settings?: {
            security?: {
                passwordPolicy?: {
                    minLength?: number | undefined;
                    requireUppercase?: boolean | undefined;
                    requireLowercase?: boolean | undefined;
                    requireNumbers?: boolean | undefined;
                    requireSpecialChars?: boolean | undefined;
                    maxAge?: number | undefined;
                } | undefined;
                sessionTimeout?: number | undefined;
                maxLoginAttempts?: number | undefined;
                twoFactorRequired?: boolean | undefined;
                ipWhitelist?: string[] | undefined;
            } | undefined;
            currency?: string | undefined;
            timezone?: string | undefined;
            locale?: string | undefined;
            dateFormat?: string | undefined;
            timeFormat?: string | undefined;
            theme?: {
                primaryColor?: string | undefined;
                secondaryColor?: string | undefined;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            notifications?: {
                push?: boolean | undefined;
                sms?: boolean | undefined;
                email?: boolean | undefined;
                webhook?: boolean | undefined;
            } | undefined;
        } | undefined;
    } | undefined;
    contact?: {
        email: string;
        phone?: string | undefined;
        address?: {
            street: string;
            city: string;
            country: string;
            state: string;
            postalCode: string;
        } | undefined;
    } | undefined;
    billing?: {
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
        plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
        billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
    } | undefined;
}>;
export declare const ActivateTenantRequestSchema: z.ZodObject<{
    activationCode: z.ZodString;
    adminUser: z.ZodObject<{
        email: z.ZodString;
        password: z.ZodString;
        firstName: z.ZodString;
        lastName: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        email: string;
        firstName: string;
        lastName: string;
        password: string;
    }, {
        email: string;
        firstName: string;
        lastName: string;
        password: string;
    }>;
}, "strip", z.ZodTypeAny, {
    activationCode: string;
    adminUser: {
        email: string;
        firstName: string;
        lastName: string;
        password: string;
    };
}, {
    activationCode: string;
    adminUser: {
        email: string;
        firstName: string;
        lastName: string;
        password: string;
    };
}>;
export declare const SuspendTenantRequestSchema: z.ZodObject<{
    reason: z.ZodString;
    suspendUntil: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
    reason: string;
    suspendUntil?: Date | undefined;
}, {
    reason: string;
    suspendUntil?: Date | undefined;
}>;
export declare const UpgradeTenantRequestSchema: z.ZodObject<{
    plan: z.ZodEnum<["basic", "professional", "enterprise"]>;
    billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
    paymentMethod: z.ZodOptional<z.ZodObject<{
        type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
        token: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type: "paypal" | "credit_card" | "bank_transfer";
        token?: string | undefined;
    }, {
        type: "paypal" | "credit_card" | "bank_transfer";
        token?: string | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    plan: "basic" | "professional" | "enterprise";
    billingCycle: "monthly" | "quarterly" | "annually";
    paymentMethod?: {
        type: "paypal" | "credit_card" | "bank_transfer";
        token?: string | undefined;
    } | undefined;
}, {
    plan: "basic" | "professional" | "enterprise";
    billingCycle: "monthly" | "quarterly" | "annually";
    paymentMethod?: {
        type: "paypal" | "credit_card" | "bank_transfer";
        token?: string | undefined;
    } | undefined;
}>;
export declare const TenantResponseSchema: z.ZodObject<{
    id: z.ZodBranded<z.ZodString, "TenantId">;
    name: z.ZodString;
    slug: z.ZodString;
    domain: z.ZodString;
    type: z.ZodNativeEnum<typeof TenantType>;
    status: z.ZodNativeEnum<typeof TenantStatus>;
    contact: z.ZodObject<{
        email: z.ZodString;
        phone: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        email: string;
        phone?: string | undefined;
    }, {
        email: string;
        phone?: string | undefined;
    }>;
    billing: z.ZodObject<{
        plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
        billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
        nextBillingDate: z.ZodDate;
        totalAmount: z.ZodNumber;
        currency: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
    }, {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
    }>;
    subscription: z.ZodObject<{
        isActive: z.ZodBoolean;
        autoRenew: z.ZodBoolean;
        trialEndsAt: z.ZodOptional<z.ZodDate>;
    }, "strip", z.ZodTypeAny, {
        isActive: boolean;
        autoRenew: boolean;
        trialEndsAt?: Date | undefined;
    }, {
        isActive: boolean;
        autoRenew: boolean;
        trialEndsAt?: Date | undefined;
    }>;
    usage: z.ZodObject<{
        activeUsers: z.ZodNumber;
        storageUsed: z.ZodNumber;
        apiCallsThisMonth: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
    }, {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
    }>;
    createdAt: z.ZodDate;
    updatedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
    type: TenantType;
    id: string & z.BRAND<"TenantId">;
    createdAt: Date;
    updatedAt: Date;
    status: TenantStatus;
    name: string;
    slug: string;
    domain: string;
    contact: {
        email: string;
        phone?: string | undefined;
    };
    billing: {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
    };
    subscription: {
        isActive: boolean;
        autoRenew: boolean;
        trialEndsAt?: Date | undefined;
    };
    usage: {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
    };
}, {
    type: TenantType;
    id: string;
    createdAt: Date;
    updatedAt: Date;
    status: TenantStatus;
    name: string;
    slug: string;
    domain: string;
    contact: {
        email: string;
        phone?: string | undefined;
    };
    billing: {
        plan: "basic" | "professional" | "enterprise" | "free";
        currency: string;
        billingCycle: "monthly" | "quarterly" | "annually";
        nextBillingDate: Date;
        totalAmount: number;
    };
    subscription: {
        isActive: boolean;
        autoRenew: boolean;
        trialEndsAt?: Date | undefined;
    };
    usage: {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
    };
}>;
export declare const TenantListResponseSchema: z.ZodObject<{
    tenants: z.ZodArray<z.ZodObject<{
        id: z.ZodBranded<z.ZodString, "TenantId">;
        name: z.ZodString;
        slug: z.ZodString;
        domain: z.ZodString;
        type: z.ZodNativeEnum<typeof TenantType>;
        status: z.ZodNativeEnum<typeof TenantStatus>;
        contact: z.ZodObject<{
            email: z.ZodString;
            phone: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            email: string;
            phone?: string | undefined;
        }, {
            email: string;
            phone?: string | undefined;
        }>;
        billing: z.ZodObject<{
            plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
            billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
            nextBillingDate: z.ZodDate;
            totalAmount: z.ZodNumber;
            currency: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        }, {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        }>;
        subscription: z.ZodObject<{
            isActive: z.ZodBoolean;
            autoRenew: z.ZodBoolean;
            trialEndsAt: z.ZodOptional<z.ZodDate>;
        }, "strip", z.ZodTypeAny, {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        }, {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        }>;
        usage: z.ZodObject<{
            activeUsers: z.ZodNumber;
            storageUsed: z.ZodNumber;
            apiCallsThisMonth: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        }, {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        }>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
    }, "strip", z.ZodTypeAny, {
        type: TenantType;
        id: string & z.BRAND<"TenantId">;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        };
        subscription: {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        };
    }, {
        type: TenantType;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        };
        subscription: {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        };
    }>, "many">;
    pagination: z.ZodObject<{
        page: z.ZodNumber;
        limit: z.ZodNumber;
        total: z.ZodNumber;
        totalPages: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        page: number;
        limit: number;
        total: number;
        totalPages: number;
    }, {
        page: number;
        limit: number;
        total: number;
        totalPages: number;
    }>;
}, "strip", z.ZodTypeAny, {
    pagination: {
        page: number;
        limit: number;
        total: number;
        totalPages: number;
    };
    tenants: {
        type: TenantType;
        id: string & z.BRAND<"TenantId">;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        };
        subscription: {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        };
    }[];
}, {
    pagination: {
        page: number;
        limit: number;
        total: number;
        totalPages: number;
    };
    tenants: {
        type: TenantType;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        };
        subscription: {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        };
    }[];
}>;
export declare const TenantConfigResponseSchema: z.ZodObject<{
    features: z.ZodObject<{
        multiTenancy: z.ZodBoolean;
        sso: z.ZodBoolean;
        auditLogging: z.ZodBoolean;
        backup: z.ZodBoolean;
        customBranding: z.ZodBoolean;
        apiAccess: z.ZodBoolean;
        webhookSupport: z.ZodBoolean;
        advancedAnalytics: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    }, {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    }>;
    limits: z.ZodObject<{
        maxUsers: z.ZodNumber;
        maxStorage: z.ZodNumber;
        maxApiCalls: z.ZodNumber;
        maxBackups: z.ZodNumber;
        maxCustomDomains: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    }, {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    }>;
    settings: z.ZodObject<{
        timezone: z.ZodString;
        locale: z.ZodString;
        dateFormat: z.ZodString;
        timeFormat: z.ZodString;
        currency: z.ZodString;
        theme: z.ZodOptional<z.ZodObject<{
            primaryColor: z.ZodString;
            secondaryColor: z.ZodString;
            logo: z.ZodOptional<z.ZodString>;
            favicon: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        }, {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        }>>;
        notifications: z.ZodObject<{
            email: z.ZodBoolean;
            sms: z.ZodBoolean;
            push: z.ZodBoolean;
            webhook: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        }, {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        }>;
        security: z.ZodObject<{
            passwordPolicy: z.ZodObject<{
                minLength: z.ZodNumber;
                requireUppercase: z.ZodBoolean;
                requireLowercase: z.ZodBoolean;
                requireNumbers: z.ZodBoolean;
                requireSpecialChars: z.ZodBoolean;
                maxAge: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            }, {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            }>;
            sessionTimeout: z.ZodNumber;
            maxLoginAttempts: z.ZodNumber;
            twoFactorRequired: z.ZodBoolean;
            ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        }, {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
    }, {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    features: {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    };
    limits: {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    };
    settings: {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
    };
}, {
    features: {
        multiTenancy: boolean;
        sso: boolean;
        auditLogging: boolean;
        backup: boolean;
        customBranding: boolean;
        apiAccess: boolean;
        webhookSupport: boolean;
        advancedAnalytics: boolean;
    };
    limits: {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
        maxBackups: number;
        maxCustomDomains: number;
    };
    settings: {
        security: {
            passwordPolicy: {
                minLength: number;
                requireUppercase: boolean;
                requireLowercase: boolean;
                requireNumbers: boolean;
                requireSpecialChars: boolean;
                maxAge: number;
            };
            sessionTimeout: number;
            maxLoginAttempts: number;
            twoFactorRequired: boolean;
            ipWhitelist?: string[] | undefined;
        };
        currency: string;
        timezone: string;
        locale: string;
        dateFormat: string;
        timeFormat: string;
        notifications: {
            push: boolean;
            sms: boolean;
            email: boolean;
            webhook: boolean;
        };
        theme?: {
            primaryColor: string;
            secondaryColor: string;
            logo?: string | undefined;
            favicon?: string | undefined;
        } | undefined;
    };
}>;
export declare const TenantUsageResponseSchema: z.ZodObject<{
    activeUsers: z.ZodNumber;
    storageUsed: z.ZodNumber;
    apiCallsThisMonth: z.ZodNumber;
    apiCallsLimit: z.ZodNumber;
    storageLimit: z.ZodNumber;
    userLimit: z.ZodNumber;
    usagePercentages: z.ZodObject<{
        users: z.ZodNumber;
        storage: z.ZodNumber;
        apiCalls: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        users: number;
        storage: number;
        apiCalls: number;
    }, {
        users: number;
        storage: number;
        apiCalls: number;
    }>;
}, "strip", z.ZodTypeAny, {
    activeUsers: number;
    storageUsed: number;
    apiCallsThisMonth: number;
    apiCallsLimit: number;
    storageLimit: number;
    userLimit: number;
    usagePercentages: {
        users: number;
        storage: number;
        apiCalls: number;
    };
}, {
    activeUsers: number;
    storageUsed: number;
    apiCallsThisMonth: number;
    apiCallsLimit: number;
    storageLimit: number;
    userLimit: number;
    usagePercentages: {
        users: number;
        storage: number;
        apiCalls: number;
    };
}>;
export declare const TenantSearchFiltersSchema: z.ZodObject<{
    query: z.ZodOptional<z.ZodString>;
    type: z.ZodOptional<z.ZodNativeEnum<typeof TenantType>>;
    status: z.ZodOptional<z.ZodNativeEnum<typeof TenantStatus>>;
    plan: z.ZodOptional<z.ZodEnum<["free", "basic", "professional", "enterprise"]>>;
    billingCycle: z.ZodOptional<z.ZodEnum<["monthly", "quarterly", "annually"]>>;
    createdAfter: z.ZodOptional<z.ZodDate>;
    createdBefore: z.ZodOptional<z.ZodDate>;
    hasActiveSubscription: z.ZodOptional<z.ZodBoolean>;
    isOverLimit: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    type?: TenantType | undefined;
    status?: TenantStatus | undefined;
    plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
    query?: string | undefined;
    createdAfter?: Date | undefined;
    createdBefore?: Date | undefined;
    billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
    hasActiveSubscription?: boolean | undefined;
    isOverLimit?: boolean | undefined;
}, {
    type?: TenantType | undefined;
    status?: TenantStatus | undefined;
    plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
    query?: string | undefined;
    createdAfter?: Date | undefined;
    createdBefore?: Date | undefined;
    billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
    hasActiveSubscription?: boolean | undefined;
    isOverLimit?: boolean | undefined;
}>;
export declare const TenantSortOptionsSchema: z.ZodEnum<["createdAt", "updatedAt", "name", "slug", "type", "status", "plan", "activeUsers", "storageUsed", "apiCallsThisMonth"]>;
export declare const TenantValidationUtils: {
    isValidDomainName: (domain: string) => boolean;
    isValidSlug: (slug: string) => boolean;
    isOverUsageLimit: (usage: {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
    }, limits: {
        maxUsers: number;
        maxStorage: number;
        maxApiCalls: number;
    }) => boolean;
    calculateUsagePercentage: (current: number, limit: number) => number;
    validateTenantConfig: (config: any) => {
        isValid: boolean;
        errors: string[];
    };
};
export type CreateTenantRequest = z.infer<typeof CreateTenantRequestSchema>;
export type UpdateTenantRequest = z.infer<typeof UpdateTenantRequestSchema>;
export type ActivateTenantRequest = z.infer<typeof ActivateTenantRequestSchema>;
export type SuspendTenantRequest = z.infer<typeof SuspendTenantRequestSchema>;
export type UpgradeTenantRequest = z.infer<typeof UpgradeTenantRequestSchema>;
export type TenantResponse = z.infer<typeof TenantResponseSchema>;
export type TenantListResponse = z.infer<typeof TenantListResponseSchema>;
export type TenantConfigResponse = z.infer<typeof TenantConfigResponseSchema>;
export type TenantUsageResponse = z.infer<typeof TenantUsageResponseSchema>;
export type TenantSearchFilters = z.infer<typeof TenantSearchFiltersSchema>;
export type TenantSortOptions = z.infer<typeof TenantSortOptionsSchema>;
export declare const TenantSchemas: {
    readonly TenantId: z.ZodBranded<z.ZodString, "TenantId">;
    readonly DomainName: z.ZodBranded<z.ZodString, "DomainName">;
    readonly TenantStatus: z.ZodNativeEnum<typeof TenantStatus>;
    readonly TenantType: z.ZodNativeEnum<typeof TenantType>;
    readonly TenantIdValueObject: z.ZodObject<{
        value: z.ZodBranded<z.ZodString, "TenantId">;
        format: z.ZodEnum<["uuid", "auto-increment", "custom"]>;
        createdAt: z.ZodDate;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, "strip", z.ZodTypeAny, {
        value: string & z.BRAND<"TenantId">;
        createdAt: Date;
        format: "uuid" | "custom" | "auto-increment";
        metadata?: Record<string, unknown> | undefined;
    }, {
        value: string;
        createdAt: Date;
        format: "uuid" | "custom" | "auto-increment";
        metadata?: Record<string, unknown> | undefined;
    }>;
    readonly DomainNameValueObject: z.ZodObject<{
        value: z.ZodBranded<z.ZodString, "DomainName">;
        isVerified: z.ZodBoolean;
        verifiedAt: z.ZodOptional<z.ZodDate>;
        sslCertificate: z.ZodOptional<z.ZodObject<{
            issuer: z.ZodString;
            validFrom: z.ZodDate;
            validTo: z.ZodDate;
            serialNumber: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        }, {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        }>>;
        createdAt: z.ZodDate;
    }, "strip", z.ZodTypeAny, {
        value: string & z.BRAND<"DomainName">;
        createdAt: Date;
        isVerified: boolean;
        verifiedAt?: Date | undefined;
        sslCertificate?: {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        } | undefined;
    }, {
        value: string;
        createdAt: Date;
        isVerified: boolean;
        verifiedAt?: Date | undefined;
        sslCertificate?: {
            issuer: string;
            validFrom: Date;
            validTo: Date;
            serialNumber: string;
        } | undefined;
    }>;
    readonly Tenant: z.ZodObject<{
        id: z.ZodBranded<z.ZodString, "TenantId">;
        name: z.ZodString;
        slug: z.ZodString;
        domain: z.ZodObject<{
            value: z.ZodBranded<z.ZodString, "DomainName">;
            isVerified: z.ZodBoolean;
            verifiedAt: z.ZodOptional<z.ZodDate>;
            sslCertificate: z.ZodOptional<z.ZodObject<{
                issuer: z.ZodString;
                validFrom: z.ZodDate;
                validTo: z.ZodDate;
                serialNumber: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                issuer: string;
                validFrom: Date;
                validTo: Date;
                serialNumber: string;
            }, {
                issuer: string;
                validFrom: Date;
                validTo: Date;
                serialNumber: string;
            }>>;
            createdAt: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            value: string & z.BRAND<"DomainName">;
            createdAt: Date;
            isVerified: boolean;
            verifiedAt?: Date | undefined;
            sslCertificate?: {
                issuer: string;
                validFrom: Date;
                validTo: Date;
                serialNumber: string;
            } | undefined;
        }, {
            value: string;
            createdAt: Date;
            isVerified: boolean;
            verifiedAt?: Date | undefined;
            sslCertificate?: {
                issuer: string;
                validFrom: Date;
                validTo: Date;
                serialNumber: string;
            } | undefined;
        }>;
        type: z.ZodNativeEnum<typeof TenantType>;
        status: z.ZodNativeEnum<typeof TenantStatus>;
        config: z.ZodObject<{
            id: z.ZodBranded<z.ZodString, "TenantId">;
            features: z.ZodObject<{
                multiTenancy: z.ZodBoolean;
                sso: z.ZodBoolean;
                auditLogging: z.ZodBoolean;
                backup: z.ZodBoolean;
                customBranding: z.ZodBoolean;
                apiAccess: z.ZodBoolean;
                webhookSupport: z.ZodBoolean;
                advancedAnalytics: z.ZodBoolean;
            }, "strip", z.ZodTypeAny, {
                multiTenancy: boolean;
                sso: boolean;
                auditLogging: boolean;
                backup: boolean;
                customBranding: boolean;
                apiAccess: boolean;
                webhookSupport: boolean;
                advancedAnalytics: boolean;
            }, {
                multiTenancy: boolean;
                sso: boolean;
                auditLogging: boolean;
                backup: boolean;
                customBranding: boolean;
                apiAccess: boolean;
                webhookSupport: boolean;
                advancedAnalytics: boolean;
            }>;
            limits: z.ZodObject<{
                maxUsers: z.ZodNumber;
                maxStorage: z.ZodNumber;
                maxApiCalls: z.ZodNumber;
                maxBackups: z.ZodNumber;
                maxCustomDomains: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                maxUsers: number;
                maxStorage: number;
                maxApiCalls: number;
                maxBackups: number;
                maxCustomDomains: number;
            }, {
                maxUsers: number;
                maxStorage: number;
                maxApiCalls: number;
                maxBackups: number;
                maxCustomDomains: number;
            }>;
            settings: z.ZodObject<{
                timezone: z.ZodString;
                locale: z.ZodString;
                dateFormat: z.ZodString;
                timeFormat: z.ZodString;
                currency: z.ZodString;
                theme: z.ZodOptional<z.ZodObject<{
                    primaryColor: z.ZodString;
                    secondaryColor: z.ZodString;
                    logo: z.ZodOptional<z.ZodString>;
                    favicon: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                }, {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                }>>;
                notifications: z.ZodObject<{
                    email: z.ZodBoolean;
                    sms: z.ZodBoolean;
                    push: z.ZodBoolean;
                    webhook: z.ZodBoolean;
                }, "strip", z.ZodTypeAny, {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                }, {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                }>;
                security: z.ZodObject<{
                    passwordPolicy: z.ZodObject<{
                        minLength: z.ZodNumber;
                        requireUppercase: z.ZodBoolean;
                        requireLowercase: z.ZodBoolean;
                        requireNumbers: z.ZodBoolean;
                        requireSpecialChars: z.ZodBoolean;
                        maxAge: z.ZodNumber;
                    }, "strip", z.ZodTypeAny, {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    }, {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    }>;
                    sessionTimeout: z.ZodNumber;
                    maxLoginAttempts: z.ZodNumber;
                    twoFactorRequired: z.ZodBoolean;
                    ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                }, "strip", z.ZodTypeAny, {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                }, {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                }>;
                integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                    enabled: z.ZodBoolean;
                    apiKey: z.ZodOptional<z.ZodString>;
                    webhookUrl: z.ZodOptional<z.ZodString>;
                    settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
                }, "strip", z.ZodTypeAny, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }>>>;
            }, "strip", z.ZodTypeAny, {
                security: {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                };
                currency: string;
                timezone: string;
                locale: string;
                dateFormat: string;
                timeFormat: string;
                notifications: {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                };
                theme?: {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                integrations?: Record<string, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }> | undefined;
            }, {
                security: {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                };
                currency: string;
                timezone: string;
                locale: string;
                dateFormat: string;
                timeFormat: string;
                notifications: {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                };
                theme?: {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                integrations?: Record<string, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }> | undefined;
            }>;
            createdAt: z.ZodDate;
            updatedAt: z.ZodDate;
            createdBy: z.ZodOptional<z.ZodString>;
            updatedBy: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            id: string & z.BRAND<"TenantId">;
            createdAt: Date;
            updatedAt: Date;
            features: {
                multiTenancy: boolean;
                sso: boolean;
                auditLogging: boolean;
                backup: boolean;
                customBranding: boolean;
                apiAccess: boolean;
                webhookSupport: boolean;
                advancedAnalytics: boolean;
            };
            limits: {
                maxUsers: number;
                maxStorage: number;
                maxApiCalls: number;
                maxBackups: number;
                maxCustomDomains: number;
            };
            settings: {
                security: {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                };
                currency: string;
                timezone: string;
                locale: string;
                dateFormat: string;
                timeFormat: string;
                notifications: {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                };
                theme?: {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                integrations?: Record<string, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }> | undefined;
            };
            createdBy?: string | undefined;
            updatedBy?: string | undefined;
        }, {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            features: {
                multiTenancy: boolean;
                sso: boolean;
                auditLogging: boolean;
                backup: boolean;
                customBranding: boolean;
                apiAccess: boolean;
                webhookSupport: boolean;
                advancedAnalytics: boolean;
            };
            limits: {
                maxUsers: number;
                maxStorage: number;
                maxApiCalls: number;
                maxBackups: number;
                maxCustomDomains: number;
            };
            settings: {
                security: {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                };
                currency: string;
                timezone: string;
                locale: string;
                dateFormat: string;
                timeFormat: string;
                notifications: {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                };
                theme?: {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                integrations?: Record<string, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }> | undefined;
            };
            createdBy?: string | undefined;
            updatedBy?: string | undefined;
        }>;
        contact: z.ZodObject<{
            email: z.ZodString;
            phone: z.ZodOptional<z.ZodString>;
            address: z.ZodOptional<z.ZodObject<{
                street: z.ZodString;
                city: z.ZodString;
                state: z.ZodString;
                postalCode: z.ZodString;
                country: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            }, {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            }>>;
        }, "strip", z.ZodTypeAny, {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        }, {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        }>;
        billing: z.ZodObject<{
            plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
            billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
            nextBillingDate: z.ZodDate;
            lastBillingDate: z.ZodOptional<z.ZodDate>;
            totalAmount: z.ZodNumber;
            currency: z.ZodString;
            paymentMethod: z.ZodOptional<z.ZodObject<{
                type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
                last4: z.ZodOptional<z.ZodString>;
                expiryDate: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: "paypal" | "credit_card" | "bank_transfer";
                last4?: string | undefined;
                expiryDate?: string | undefined;
            }, {
                type: "paypal" | "credit_card" | "bank_transfer";
                last4?: string | undefined;
                expiryDate?: string | undefined;
            }>>;
            invoices: z.ZodOptional<z.ZodArray<z.ZodObject<{
                id: z.ZodString;
                amount: z.ZodNumber;
                currency: z.ZodString;
                status: z.ZodEnum<["pending", "paid", "overdue", "cancelled"]>;
                dueDate: z.ZodDate;
                paidAt: z.ZodOptional<z.ZodDate>;
            }, "strip", z.ZodTypeAny, {
                id: string;
                status: "pending" | "cancelled" | "paid" | "overdue";
                amount: number;
                currency: string;
                dueDate: Date;
                paidAt?: Date | undefined;
            }, {
                id: string;
                status: "pending" | "cancelled" | "paid" | "overdue";
                amount: number;
                currency: string;
                dueDate: Date;
                paidAt?: Date | undefined;
            }>, "many">>;
        }, "strip", z.ZodTypeAny, {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                last4?: string | undefined;
                expiryDate?: string | undefined;
            } | undefined;
            lastBillingDate?: Date | undefined;
            invoices?: {
                id: string;
                status: "pending" | "cancelled" | "paid" | "overdue";
                amount: number;
                currency: string;
                dueDate: Date;
                paidAt?: Date | undefined;
            }[] | undefined;
        }, {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                last4?: string | undefined;
                expiryDate?: string | undefined;
            } | undefined;
            lastBillingDate?: Date | undefined;
            invoices?: {
                id: string;
                status: "pending" | "cancelled" | "paid" | "overdue";
                amount: number;
                currency: string;
                dueDate: Date;
                paidAt?: Date | undefined;
            }[] | undefined;
        }>;
        subscription: z.ZodObject<{
            startDate: z.ZodDate;
            endDate: z.ZodOptional<z.ZodDate>;
            isActive: z.ZodBoolean;
            autoRenew: z.ZodBoolean;
            trialEndsAt: z.ZodOptional<z.ZodDate>;
            cancelledAt: z.ZodOptional<z.ZodDate>;
        }, "strip", z.ZodTypeAny, {
            startDate: Date;
            isActive: boolean;
            autoRenew: boolean;
            endDate?: Date | undefined;
            trialEndsAt?: Date | undefined;
            cancelledAt?: Date | undefined;
        }, {
            startDate: Date;
            isActive: boolean;
            autoRenew: boolean;
            endDate?: Date | undefined;
            trialEndsAt?: Date | undefined;
            cancelledAt?: Date | undefined;
        }>;
        usage: z.ZodObject<{
            activeUsers: z.ZodNumber;
            storageUsed: z.ZodNumber;
            apiCallsThisMonth: z.ZodNumber;
            lastActivityAt: z.ZodOptional<z.ZodDate>;
        }, "strip", z.ZodTypeAny, {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
            lastActivityAt?: Date | undefined;
        }, {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
            lastActivityAt?: Date | undefined;
        }>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
        createdBy: z.ZodOptional<z.ZodString>;
        updatedBy: z.ZodOptional<z.ZodString>;
        deletedAt: z.ZodOptional<z.ZodDate>;
    }, "strip", z.ZodTypeAny, {
        type: TenantType;
        id: string & z.BRAND<"TenantId">;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: {
            value: string & z.BRAND<"DomainName">;
            createdAt: Date;
            isVerified: boolean;
            verifiedAt?: Date | undefined;
            sslCertificate?: {
                issuer: string;
                validFrom: Date;
                validTo: Date;
                serialNumber: string;
            } | undefined;
        };
        config: {
            id: string & z.BRAND<"TenantId">;
            createdAt: Date;
            updatedAt: Date;
            features: {
                multiTenancy: boolean;
                sso: boolean;
                auditLogging: boolean;
                backup: boolean;
                customBranding: boolean;
                apiAccess: boolean;
                webhookSupport: boolean;
                advancedAnalytics: boolean;
            };
            limits: {
                maxUsers: number;
                maxStorage: number;
                maxApiCalls: number;
                maxBackups: number;
                maxCustomDomains: number;
            };
            settings: {
                security: {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                };
                currency: string;
                timezone: string;
                locale: string;
                dateFormat: string;
                timeFormat: string;
                notifications: {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                };
                theme?: {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                integrations?: Record<string, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }> | undefined;
            };
            createdBy?: string | undefined;
            updatedBy?: string | undefined;
        };
        contact: {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                last4?: string | undefined;
                expiryDate?: string | undefined;
            } | undefined;
            lastBillingDate?: Date | undefined;
            invoices?: {
                id: string;
                status: "pending" | "cancelled" | "paid" | "overdue";
                amount: number;
                currency: string;
                dueDate: Date;
                paidAt?: Date | undefined;
            }[] | undefined;
        };
        subscription: {
            startDate: Date;
            isActive: boolean;
            autoRenew: boolean;
            endDate?: Date | undefined;
            trialEndsAt?: Date | undefined;
            cancelledAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
            lastActivityAt?: Date | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
        deletedAt?: Date | undefined;
    }, {
        type: TenantType;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: {
            value: string;
            createdAt: Date;
            isVerified: boolean;
            verifiedAt?: Date | undefined;
            sslCertificate?: {
                issuer: string;
                validFrom: Date;
                validTo: Date;
                serialNumber: string;
            } | undefined;
        };
        config: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            features: {
                multiTenancy: boolean;
                sso: boolean;
                auditLogging: boolean;
                backup: boolean;
                customBranding: boolean;
                apiAccess: boolean;
                webhookSupport: boolean;
                advancedAnalytics: boolean;
            };
            limits: {
                maxUsers: number;
                maxStorage: number;
                maxApiCalls: number;
                maxBackups: number;
                maxCustomDomains: number;
            };
            settings: {
                security: {
                    passwordPolicy: {
                        minLength: number;
                        requireUppercase: boolean;
                        requireLowercase: boolean;
                        requireNumbers: boolean;
                        requireSpecialChars: boolean;
                        maxAge: number;
                    };
                    sessionTimeout: number;
                    maxLoginAttempts: number;
                    twoFactorRequired: boolean;
                    ipWhitelist?: string[] | undefined;
                };
                currency: string;
                timezone: string;
                locale: string;
                dateFormat: string;
                timeFormat: string;
                notifications: {
                    push: boolean;
                    sms: boolean;
                    email: boolean;
                    webhook: boolean;
                };
                theme?: {
                    primaryColor: string;
                    secondaryColor: string;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                integrations?: Record<string, {
                    enabled: boolean;
                    settings?: Record<string, unknown> | undefined;
                    apiKey?: string | undefined;
                    webhookUrl?: string | undefined;
                }> | undefined;
            };
            createdBy?: string | undefined;
            updatedBy?: string | undefined;
        };
        contact: {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                last4?: string | undefined;
                expiryDate?: string | undefined;
            } | undefined;
            lastBillingDate?: Date | undefined;
            invoices?: {
                id: string;
                status: "pending" | "cancelled" | "paid" | "overdue";
                amount: number;
                currency: string;
                dueDate: Date;
                paidAt?: Date | undefined;
            }[] | undefined;
        };
        subscription: {
            startDate: Date;
            isActive: boolean;
            autoRenew: boolean;
            endDate?: Date | undefined;
            trialEndsAt?: Date | undefined;
            cancelledAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
            lastActivityAt?: Date | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
        deletedAt?: Date | undefined;
    }>;
    readonly TenantConfig: z.ZodObject<{
        id: z.ZodBranded<z.ZodString, "TenantId">;
        features: z.ZodObject<{
            multiTenancy: z.ZodBoolean;
            sso: z.ZodBoolean;
            auditLogging: z.ZodBoolean;
            backup: z.ZodBoolean;
            customBranding: z.ZodBoolean;
            apiAccess: z.ZodBoolean;
            webhookSupport: z.ZodBoolean;
            advancedAnalytics: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        }, {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        }>;
        limits: z.ZodObject<{
            maxUsers: z.ZodNumber;
            maxStorage: z.ZodNumber;
            maxApiCalls: z.ZodNumber;
            maxBackups: z.ZodNumber;
            maxCustomDomains: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        }, {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        }>;
        settings: z.ZodObject<{
            timezone: z.ZodString;
            locale: z.ZodString;
            dateFormat: z.ZodString;
            timeFormat: z.ZodString;
            currency: z.ZodString;
            theme: z.ZodOptional<z.ZodObject<{
                primaryColor: z.ZodString;
                secondaryColor: z.ZodString;
                logo: z.ZodOptional<z.ZodString>;
                favicon: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            }, {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            }>>;
            notifications: z.ZodObject<{
                email: z.ZodBoolean;
                sms: z.ZodBoolean;
                push: z.ZodBoolean;
                webhook: z.ZodBoolean;
            }, "strip", z.ZodTypeAny, {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            }, {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            }>;
            security: z.ZodObject<{
                passwordPolicy: z.ZodObject<{
                    minLength: z.ZodNumber;
                    requireUppercase: z.ZodBoolean;
                    requireLowercase: z.ZodBoolean;
                    requireNumbers: z.ZodBoolean;
                    requireSpecialChars: z.ZodBoolean;
                    maxAge: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                }, {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                }>;
                sessionTimeout: z.ZodNumber;
                maxLoginAttempts: z.ZodNumber;
                twoFactorRequired: z.ZodBoolean;
                ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            }, "strip", z.ZodTypeAny, {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            }, {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            }>;
            integrations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
                enabled: z.ZodBoolean;
                apiKey: z.ZodOptional<z.ZodString>;
                webhookUrl: z.ZodOptional<z.ZodString>;
                settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, "strip", z.ZodTypeAny, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }>>>;
        }, "strip", z.ZodTypeAny, {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        }, {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        }>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
        createdBy: z.ZodOptional<z.ZodString>;
        updatedBy: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        id: string & z.BRAND<"TenantId">;
        createdAt: Date;
        updatedAt: Date;
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
    }, {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
            integrations?: Record<string, {
                enabled: boolean;
                settings?: Record<string, unknown> | undefined;
                apiKey?: string | undefined;
                webhookUrl?: string | undefined;
            }> | undefined;
        };
        createdBy?: string | undefined;
        updatedBy?: string | undefined;
    }>;
    readonly CreateTenantRequest: z.ZodObject<{
        name: z.ZodString;
        slug: z.ZodString;
        domain: z.ZodString;
        type: z.ZodNativeEnum<typeof TenantType>;
        contact: z.ZodObject<{
            email: z.ZodString;
            phone: z.ZodOptional<z.ZodString>;
            address: z.ZodOptional<z.ZodObject<{
                street: z.ZodString;
                city: z.ZodString;
                state: z.ZodString;
                postalCode: z.ZodString;
                country: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            }, {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            }>>;
        }, "strip", z.ZodTypeAny, {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        }, {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        }>;
        billing: z.ZodObject<{
            plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
            billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
            paymentMethod: z.ZodOptional<z.ZodObject<{
                type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
                token: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            }, {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            plan: "basic" | "professional" | "enterprise" | "free";
            billingCycle: "monthly" | "quarterly" | "annually";
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
        }, {
            plan: "basic" | "professional" | "enterprise" | "free";
            billingCycle: "monthly" | "quarterly" | "annually";
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
        }>;
        config: z.ZodOptional<z.ZodObject<{
            features: z.ZodOptional<z.ZodObject<{
                multiTenancy: z.ZodOptional<z.ZodBoolean>;
                sso: z.ZodOptional<z.ZodBoolean>;
                auditLogging: z.ZodOptional<z.ZodBoolean>;
                backup: z.ZodOptional<z.ZodBoolean>;
                customBranding: z.ZodOptional<z.ZodBoolean>;
                apiAccess: z.ZodOptional<z.ZodBoolean>;
                webhookSupport: z.ZodOptional<z.ZodBoolean>;
                advancedAnalytics: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            }, {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            }>>;
            limits: z.ZodOptional<z.ZodObject<{
                maxUsers: z.ZodOptional<z.ZodNumber>;
                maxStorage: z.ZodOptional<z.ZodNumber>;
                maxApiCalls: z.ZodOptional<z.ZodNumber>;
                maxBackups: z.ZodOptional<z.ZodNumber>;
                maxCustomDomains: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            }, {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            }>>;
            settings: z.ZodOptional<z.ZodObject<{
                timezone: z.ZodOptional<z.ZodString>;
                locale: z.ZodOptional<z.ZodString>;
                dateFormat: z.ZodOptional<z.ZodString>;
                timeFormat: z.ZodOptional<z.ZodString>;
                currency: z.ZodOptional<z.ZodString>;
                theme: z.ZodOptional<z.ZodObject<{
                    primaryColor: z.ZodOptional<z.ZodString>;
                    secondaryColor: z.ZodOptional<z.ZodString>;
                    logo: z.ZodOptional<z.ZodString>;
                    favicon: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                }, {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                }>>;
                notifications: z.ZodOptional<z.ZodObject<{
                    email: z.ZodOptional<z.ZodBoolean>;
                    sms: z.ZodOptional<z.ZodBoolean>;
                    push: z.ZodOptional<z.ZodBoolean>;
                    webhook: z.ZodOptional<z.ZodBoolean>;
                }, "strip", z.ZodTypeAny, {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                }, {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                }>>;
                security: z.ZodOptional<z.ZodObject<{
                    passwordPolicy: z.ZodOptional<z.ZodObject<{
                        minLength: z.ZodOptional<z.ZodNumber>;
                        requireUppercase: z.ZodOptional<z.ZodBoolean>;
                        requireLowercase: z.ZodOptional<z.ZodBoolean>;
                        requireNumbers: z.ZodOptional<z.ZodBoolean>;
                        requireSpecialChars: z.ZodOptional<z.ZodBoolean>;
                        maxAge: z.ZodOptional<z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    }, {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    }>>;
                    sessionTimeout: z.ZodOptional<z.ZodNumber>;
                    maxLoginAttempts: z.ZodOptional<z.ZodNumber>;
                    twoFactorRequired: z.ZodOptional<z.ZodBoolean>;
                    ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                }, "strip", z.ZodTypeAny, {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                }, {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                }>>;
            }, "strip", z.ZodTypeAny, {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            }, {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        }, {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type: TenantType;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            billingCycle: "monthly" | "quarterly" | "annually";
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
        };
        config?: {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
    }, {
        type: TenantType;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            billingCycle: "monthly" | "quarterly" | "annually";
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
        };
        config?: {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
    }>;
    readonly UpdateTenantRequest: z.ZodObject<{
        name: z.ZodOptional<z.ZodString>;
        slug: z.ZodOptional<z.ZodString>;
        domain: z.ZodOptional<z.ZodString>;
        type: z.ZodOptional<z.ZodNativeEnum<typeof TenantType>>;
        status: z.ZodOptional<z.ZodNativeEnum<typeof TenantStatus>>;
        contact: z.ZodOptional<z.ZodObject<{
            email: z.ZodString;
            phone: z.ZodOptional<z.ZodString>;
            address: z.ZodOptional<z.ZodObject<{
                street: z.ZodString;
                city: z.ZodString;
                state: z.ZodString;
                postalCode: z.ZodString;
                country: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            }, {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            }>>;
        }, "strip", z.ZodTypeAny, {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        }, {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        }>>;
        billing: z.ZodOptional<z.ZodObject<{
            plan: z.ZodOptional<z.ZodEnum<["free", "basic", "professional", "enterprise"]>>;
            billingCycle: z.ZodOptional<z.ZodEnum<["monthly", "quarterly", "annually"]>>;
            paymentMethod: z.ZodOptional<z.ZodObject<{
                type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
                token: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            }, {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
            plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
            billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
        }, {
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
            plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
            billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
        }>>;
        config: z.ZodOptional<z.ZodObject<{
            features: z.ZodOptional<z.ZodObject<{
                multiTenancy: z.ZodOptional<z.ZodBoolean>;
                sso: z.ZodOptional<z.ZodBoolean>;
                auditLogging: z.ZodOptional<z.ZodBoolean>;
                backup: z.ZodOptional<z.ZodBoolean>;
                customBranding: z.ZodOptional<z.ZodBoolean>;
                apiAccess: z.ZodOptional<z.ZodBoolean>;
                webhookSupport: z.ZodOptional<z.ZodBoolean>;
                advancedAnalytics: z.ZodOptional<z.ZodBoolean>;
            }, "strip", z.ZodTypeAny, {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            }, {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            }>>;
            limits: z.ZodOptional<z.ZodObject<{
                maxUsers: z.ZodOptional<z.ZodNumber>;
                maxStorage: z.ZodOptional<z.ZodNumber>;
                maxApiCalls: z.ZodOptional<z.ZodNumber>;
                maxBackups: z.ZodOptional<z.ZodNumber>;
                maxCustomDomains: z.ZodOptional<z.ZodNumber>;
            }, "strip", z.ZodTypeAny, {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            }, {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            }>>;
            settings: z.ZodOptional<z.ZodObject<{
                timezone: z.ZodOptional<z.ZodString>;
                locale: z.ZodOptional<z.ZodString>;
                dateFormat: z.ZodOptional<z.ZodString>;
                timeFormat: z.ZodOptional<z.ZodString>;
                currency: z.ZodOptional<z.ZodString>;
                theme: z.ZodOptional<z.ZodObject<{
                    primaryColor: z.ZodOptional<z.ZodString>;
                    secondaryColor: z.ZodOptional<z.ZodString>;
                    logo: z.ZodOptional<z.ZodString>;
                    favicon: z.ZodOptional<z.ZodString>;
                }, "strip", z.ZodTypeAny, {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                }, {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                }>>;
                notifications: z.ZodOptional<z.ZodObject<{
                    email: z.ZodOptional<z.ZodBoolean>;
                    sms: z.ZodOptional<z.ZodBoolean>;
                    push: z.ZodOptional<z.ZodBoolean>;
                    webhook: z.ZodOptional<z.ZodBoolean>;
                }, "strip", z.ZodTypeAny, {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                }, {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                }>>;
                security: z.ZodOptional<z.ZodObject<{
                    passwordPolicy: z.ZodOptional<z.ZodObject<{
                        minLength: z.ZodOptional<z.ZodNumber>;
                        requireUppercase: z.ZodOptional<z.ZodBoolean>;
                        requireLowercase: z.ZodOptional<z.ZodBoolean>;
                        requireNumbers: z.ZodOptional<z.ZodBoolean>;
                        requireSpecialChars: z.ZodOptional<z.ZodBoolean>;
                        maxAge: z.ZodOptional<z.ZodNumber>;
                    }, "strip", z.ZodTypeAny, {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    }, {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    }>>;
                    sessionTimeout: z.ZodOptional<z.ZodNumber>;
                    maxLoginAttempts: z.ZodOptional<z.ZodNumber>;
                    twoFactorRequired: z.ZodOptional<z.ZodBoolean>;
                    ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
                }, "strip", z.ZodTypeAny, {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                }, {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                }>>;
            }, "strip", z.ZodTypeAny, {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            }, {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            }>>;
        }, "strip", z.ZodTypeAny, {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        }, {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        type?: TenantType | undefined;
        status?: TenantStatus | undefined;
        name?: string | undefined;
        slug?: string | undefined;
        domain?: string | undefined;
        config?: {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        contact?: {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        } | undefined;
        billing?: {
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
            plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
            billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
        } | undefined;
    }, {
        type?: TenantType | undefined;
        status?: TenantStatus | undefined;
        name?: string | undefined;
        slug?: string | undefined;
        domain?: string | undefined;
        config?: {
            features?: {
                multiTenancy?: boolean | undefined;
                sso?: boolean | undefined;
                auditLogging?: boolean | undefined;
                backup?: boolean | undefined;
                customBranding?: boolean | undefined;
                apiAccess?: boolean | undefined;
                webhookSupport?: boolean | undefined;
                advancedAnalytics?: boolean | undefined;
            } | undefined;
            limits?: {
                maxUsers?: number | undefined;
                maxStorage?: number | undefined;
                maxApiCalls?: number | undefined;
                maxBackups?: number | undefined;
                maxCustomDomains?: number | undefined;
            } | undefined;
            settings?: {
                security?: {
                    passwordPolicy?: {
                        minLength?: number | undefined;
                        requireUppercase?: boolean | undefined;
                        requireLowercase?: boolean | undefined;
                        requireNumbers?: boolean | undefined;
                        requireSpecialChars?: boolean | undefined;
                        maxAge?: number | undefined;
                    } | undefined;
                    sessionTimeout?: number | undefined;
                    maxLoginAttempts?: number | undefined;
                    twoFactorRequired?: boolean | undefined;
                    ipWhitelist?: string[] | undefined;
                } | undefined;
                currency?: string | undefined;
                timezone?: string | undefined;
                locale?: string | undefined;
                dateFormat?: string | undefined;
                timeFormat?: string | undefined;
                theme?: {
                    primaryColor?: string | undefined;
                    secondaryColor?: string | undefined;
                    logo?: string | undefined;
                    favicon?: string | undefined;
                } | undefined;
                notifications?: {
                    push?: boolean | undefined;
                    sms?: boolean | undefined;
                    email?: boolean | undefined;
                    webhook?: boolean | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        contact?: {
            email: string;
            phone?: string | undefined;
            address?: {
                street: string;
                city: string;
                country: string;
                state: string;
                postalCode: string;
            } | undefined;
        } | undefined;
        billing?: {
            paymentMethod?: {
                type: "paypal" | "credit_card" | "bank_transfer";
                token?: string | undefined;
            } | undefined;
            plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
            billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
        } | undefined;
    }>;
    readonly ActivateTenantRequest: z.ZodObject<{
        activationCode: z.ZodString;
        adminUser: z.ZodObject<{
            email: z.ZodString;
            password: z.ZodString;
            firstName: z.ZodString;
            lastName: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            email: string;
            firstName: string;
            lastName: string;
            password: string;
        }, {
            email: string;
            firstName: string;
            lastName: string;
            password: string;
        }>;
    }, "strip", z.ZodTypeAny, {
        activationCode: string;
        adminUser: {
            email: string;
            firstName: string;
            lastName: string;
            password: string;
        };
    }, {
        activationCode: string;
        adminUser: {
            email: string;
            firstName: string;
            lastName: string;
            password: string;
        };
    }>;
    readonly SuspendTenantRequest: z.ZodObject<{
        reason: z.ZodString;
        suspendUntil: z.ZodOptional<z.ZodDate>;
    }, "strip", z.ZodTypeAny, {
        reason: string;
        suspendUntil?: Date | undefined;
    }, {
        reason: string;
        suspendUntil?: Date | undefined;
    }>;
    readonly UpgradeTenantRequest: z.ZodObject<{
        plan: z.ZodEnum<["basic", "professional", "enterprise"]>;
        billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
        paymentMethod: z.ZodOptional<z.ZodObject<{
            type: z.ZodEnum<["credit_card", "bank_transfer", "paypal"]>;
            token: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        }, {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        plan: "basic" | "professional" | "enterprise";
        billingCycle: "monthly" | "quarterly" | "annually";
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
    }, {
        plan: "basic" | "professional" | "enterprise";
        billingCycle: "monthly" | "quarterly" | "annually";
        paymentMethod?: {
            type: "paypal" | "credit_card" | "bank_transfer";
            token?: string | undefined;
        } | undefined;
    }>;
    readonly TenantResponse: z.ZodObject<{
        id: z.ZodBranded<z.ZodString, "TenantId">;
        name: z.ZodString;
        slug: z.ZodString;
        domain: z.ZodString;
        type: z.ZodNativeEnum<typeof TenantType>;
        status: z.ZodNativeEnum<typeof TenantStatus>;
        contact: z.ZodObject<{
            email: z.ZodString;
            phone: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            email: string;
            phone?: string | undefined;
        }, {
            email: string;
            phone?: string | undefined;
        }>;
        billing: z.ZodObject<{
            plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
            billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
            nextBillingDate: z.ZodDate;
            totalAmount: z.ZodNumber;
            currency: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        }, {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        }>;
        subscription: z.ZodObject<{
            isActive: z.ZodBoolean;
            autoRenew: z.ZodBoolean;
            trialEndsAt: z.ZodOptional<z.ZodDate>;
        }, "strip", z.ZodTypeAny, {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        }, {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        }>;
        usage: z.ZodObject<{
            activeUsers: z.ZodNumber;
            storageUsed: z.ZodNumber;
            apiCallsThisMonth: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        }, {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        }>;
        createdAt: z.ZodDate;
        updatedAt: z.ZodDate;
    }, "strip", z.ZodTypeAny, {
        type: TenantType;
        id: string & z.BRAND<"TenantId">;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        };
        subscription: {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        };
    }, {
        type: TenantType;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: TenantStatus;
        name: string;
        slug: string;
        domain: string;
        contact: {
            email: string;
            phone?: string | undefined;
        };
        billing: {
            plan: "basic" | "professional" | "enterprise" | "free";
            currency: string;
            billingCycle: "monthly" | "quarterly" | "annually";
            nextBillingDate: Date;
            totalAmount: number;
        };
        subscription: {
            isActive: boolean;
            autoRenew: boolean;
            trialEndsAt?: Date | undefined;
        };
        usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        };
    }>;
    readonly TenantListResponse: z.ZodObject<{
        tenants: z.ZodArray<z.ZodObject<{
            id: z.ZodBranded<z.ZodString, "TenantId">;
            name: z.ZodString;
            slug: z.ZodString;
            domain: z.ZodString;
            type: z.ZodNativeEnum<typeof TenantType>;
            status: z.ZodNativeEnum<typeof TenantStatus>;
            contact: z.ZodObject<{
                email: z.ZodString;
                phone: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                email: string;
                phone?: string | undefined;
            }, {
                email: string;
                phone?: string | undefined;
            }>;
            billing: z.ZodObject<{
                plan: z.ZodEnum<["free", "basic", "professional", "enterprise"]>;
                billingCycle: z.ZodEnum<["monthly", "quarterly", "annually"]>;
                nextBillingDate: z.ZodDate;
                totalAmount: z.ZodNumber;
                currency: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                plan: "basic" | "professional" | "enterprise" | "free";
                currency: string;
                billingCycle: "monthly" | "quarterly" | "annually";
                nextBillingDate: Date;
                totalAmount: number;
            }, {
                plan: "basic" | "professional" | "enterprise" | "free";
                currency: string;
                billingCycle: "monthly" | "quarterly" | "annually";
                nextBillingDate: Date;
                totalAmount: number;
            }>;
            subscription: z.ZodObject<{
                isActive: z.ZodBoolean;
                autoRenew: z.ZodBoolean;
                trialEndsAt: z.ZodOptional<z.ZodDate>;
            }, "strip", z.ZodTypeAny, {
                isActive: boolean;
                autoRenew: boolean;
                trialEndsAt?: Date | undefined;
            }, {
                isActive: boolean;
                autoRenew: boolean;
                trialEndsAt?: Date | undefined;
            }>;
            usage: z.ZodObject<{
                activeUsers: z.ZodNumber;
                storageUsed: z.ZodNumber;
                apiCallsThisMonth: z.ZodNumber;
            }, "strip", z.ZodTypeAny, {
                activeUsers: number;
                storageUsed: number;
                apiCallsThisMonth: number;
            }, {
                activeUsers: number;
                storageUsed: number;
                apiCallsThisMonth: number;
            }>;
            createdAt: z.ZodDate;
            updatedAt: z.ZodDate;
        }, "strip", z.ZodTypeAny, {
            type: TenantType;
            id: string & z.BRAND<"TenantId">;
            createdAt: Date;
            updatedAt: Date;
            status: TenantStatus;
            name: string;
            slug: string;
            domain: string;
            contact: {
                email: string;
                phone?: string | undefined;
            };
            billing: {
                plan: "basic" | "professional" | "enterprise" | "free";
                currency: string;
                billingCycle: "monthly" | "quarterly" | "annually";
                nextBillingDate: Date;
                totalAmount: number;
            };
            subscription: {
                isActive: boolean;
                autoRenew: boolean;
                trialEndsAt?: Date | undefined;
            };
            usage: {
                activeUsers: number;
                storageUsed: number;
                apiCallsThisMonth: number;
            };
        }, {
            type: TenantType;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: TenantStatus;
            name: string;
            slug: string;
            domain: string;
            contact: {
                email: string;
                phone?: string | undefined;
            };
            billing: {
                plan: "basic" | "professional" | "enterprise" | "free";
                currency: string;
                billingCycle: "monthly" | "quarterly" | "annually";
                nextBillingDate: Date;
                totalAmount: number;
            };
            subscription: {
                isActive: boolean;
                autoRenew: boolean;
                trialEndsAt?: Date | undefined;
            };
            usage: {
                activeUsers: number;
                storageUsed: number;
                apiCallsThisMonth: number;
            };
        }>, "many">;
        pagination: z.ZodObject<{
            page: z.ZodNumber;
            limit: z.ZodNumber;
            total: z.ZodNumber;
            totalPages: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        }, {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        }>;
    }, "strip", z.ZodTypeAny, {
        pagination: {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        };
        tenants: {
            type: TenantType;
            id: string & z.BRAND<"TenantId">;
            createdAt: Date;
            updatedAt: Date;
            status: TenantStatus;
            name: string;
            slug: string;
            domain: string;
            contact: {
                email: string;
                phone?: string | undefined;
            };
            billing: {
                plan: "basic" | "professional" | "enterprise" | "free";
                currency: string;
                billingCycle: "monthly" | "quarterly" | "annually";
                nextBillingDate: Date;
                totalAmount: number;
            };
            subscription: {
                isActive: boolean;
                autoRenew: boolean;
                trialEndsAt?: Date | undefined;
            };
            usage: {
                activeUsers: number;
                storageUsed: number;
                apiCallsThisMonth: number;
            };
        }[];
    }, {
        pagination: {
            page: number;
            limit: number;
            total: number;
            totalPages: number;
        };
        tenants: {
            type: TenantType;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: TenantStatus;
            name: string;
            slug: string;
            domain: string;
            contact: {
                email: string;
                phone?: string | undefined;
            };
            billing: {
                plan: "basic" | "professional" | "enterprise" | "free";
                currency: string;
                billingCycle: "monthly" | "quarterly" | "annually";
                nextBillingDate: Date;
                totalAmount: number;
            };
            subscription: {
                isActive: boolean;
                autoRenew: boolean;
                trialEndsAt?: Date | undefined;
            };
            usage: {
                activeUsers: number;
                storageUsed: number;
                apiCallsThisMonth: number;
            };
        }[];
    }>;
    readonly TenantConfigResponse: z.ZodObject<{
        features: z.ZodObject<{
            multiTenancy: z.ZodBoolean;
            sso: z.ZodBoolean;
            auditLogging: z.ZodBoolean;
            backup: z.ZodBoolean;
            customBranding: z.ZodBoolean;
            apiAccess: z.ZodBoolean;
            webhookSupport: z.ZodBoolean;
            advancedAnalytics: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        }, {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        }>;
        limits: z.ZodObject<{
            maxUsers: z.ZodNumber;
            maxStorage: z.ZodNumber;
            maxApiCalls: z.ZodNumber;
            maxBackups: z.ZodNumber;
            maxCustomDomains: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        }, {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        }>;
        settings: z.ZodObject<{
            timezone: z.ZodString;
            locale: z.ZodString;
            dateFormat: z.ZodString;
            timeFormat: z.ZodString;
            currency: z.ZodString;
            theme: z.ZodOptional<z.ZodObject<{
                primaryColor: z.ZodString;
                secondaryColor: z.ZodString;
                logo: z.ZodOptional<z.ZodString>;
                favicon: z.ZodOptional<z.ZodString>;
            }, "strip", z.ZodTypeAny, {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            }, {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            }>>;
            notifications: z.ZodObject<{
                email: z.ZodBoolean;
                sms: z.ZodBoolean;
                push: z.ZodBoolean;
                webhook: z.ZodBoolean;
            }, "strip", z.ZodTypeAny, {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            }, {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            }>;
            security: z.ZodObject<{
                passwordPolicy: z.ZodObject<{
                    minLength: z.ZodNumber;
                    requireUppercase: z.ZodBoolean;
                    requireLowercase: z.ZodBoolean;
                    requireNumbers: z.ZodBoolean;
                    requireSpecialChars: z.ZodBoolean;
                    maxAge: z.ZodNumber;
                }, "strip", z.ZodTypeAny, {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                }, {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                }>;
                sessionTimeout: z.ZodNumber;
                maxLoginAttempts: z.ZodNumber;
                twoFactorRequired: z.ZodBoolean;
                ipWhitelist: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            }, "strip", z.ZodTypeAny, {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            }, {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            }>;
        }, "strip", z.ZodTypeAny, {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
        }, {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
        };
    }, {
        features: {
            multiTenancy: boolean;
            sso: boolean;
            auditLogging: boolean;
            backup: boolean;
            customBranding: boolean;
            apiAccess: boolean;
            webhookSupport: boolean;
            advancedAnalytics: boolean;
        };
        limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
            maxBackups: number;
            maxCustomDomains: number;
        };
        settings: {
            security: {
                passwordPolicy: {
                    minLength: number;
                    requireUppercase: boolean;
                    requireLowercase: boolean;
                    requireNumbers: boolean;
                    requireSpecialChars: boolean;
                    maxAge: number;
                };
                sessionTimeout: number;
                maxLoginAttempts: number;
                twoFactorRequired: boolean;
                ipWhitelist?: string[] | undefined;
            };
            currency: string;
            timezone: string;
            locale: string;
            dateFormat: string;
            timeFormat: string;
            notifications: {
                push: boolean;
                sms: boolean;
                email: boolean;
                webhook: boolean;
            };
            theme?: {
                primaryColor: string;
                secondaryColor: string;
                logo?: string | undefined;
                favicon?: string | undefined;
            } | undefined;
        };
    }>;
    readonly TenantUsageResponse: z.ZodObject<{
        activeUsers: z.ZodNumber;
        storageUsed: z.ZodNumber;
        apiCallsThisMonth: z.ZodNumber;
        apiCallsLimit: z.ZodNumber;
        storageLimit: z.ZodNumber;
        userLimit: z.ZodNumber;
        usagePercentages: z.ZodObject<{
            users: z.ZodNumber;
            storage: z.ZodNumber;
            apiCalls: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            users: number;
            storage: number;
            apiCalls: number;
        }, {
            users: number;
            storage: number;
            apiCalls: number;
        }>;
    }, "strip", z.ZodTypeAny, {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
        apiCallsLimit: number;
        storageLimit: number;
        userLimit: number;
        usagePercentages: {
            users: number;
            storage: number;
            apiCalls: number;
        };
    }, {
        activeUsers: number;
        storageUsed: number;
        apiCallsThisMonth: number;
        apiCallsLimit: number;
        storageLimit: number;
        userLimit: number;
        usagePercentages: {
            users: number;
            storage: number;
            apiCalls: number;
        };
    }>;
    readonly TenantSearchFilters: z.ZodObject<{
        query: z.ZodOptional<z.ZodString>;
        type: z.ZodOptional<z.ZodNativeEnum<typeof TenantType>>;
        status: z.ZodOptional<z.ZodNativeEnum<typeof TenantStatus>>;
        plan: z.ZodOptional<z.ZodEnum<["free", "basic", "professional", "enterprise"]>>;
        billingCycle: z.ZodOptional<z.ZodEnum<["monthly", "quarterly", "annually"]>>;
        createdAfter: z.ZodOptional<z.ZodDate>;
        createdBefore: z.ZodOptional<z.ZodDate>;
        hasActiveSubscription: z.ZodOptional<z.ZodBoolean>;
        isOverLimit: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        type?: TenantType | undefined;
        status?: TenantStatus | undefined;
        plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
        query?: string | undefined;
        createdAfter?: Date | undefined;
        createdBefore?: Date | undefined;
        billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
        hasActiveSubscription?: boolean | undefined;
        isOverLimit?: boolean | undefined;
    }, {
        type?: TenantType | undefined;
        status?: TenantStatus | undefined;
        plan?: "basic" | "professional" | "enterprise" | "free" | undefined;
        query?: string | undefined;
        createdAfter?: Date | undefined;
        createdBefore?: Date | undefined;
        billingCycle?: "monthly" | "quarterly" | "annually" | undefined;
        hasActiveSubscription?: boolean | undefined;
        isOverLimit?: boolean | undefined;
    }>;
    readonly TenantSortOptions: z.ZodEnum<["createdAt", "updatedAt", "name", "slug", "type", "status", "plan", "activeUsers", "storageUsed", "apiCallsThisMonth"]>;
    readonly ValidationUtils: {
        isValidDomainName: (domain: string) => boolean;
        isValidSlug: (slug: string) => boolean;
        isOverUsageLimit: (usage: {
            activeUsers: number;
            storageUsed: number;
            apiCallsThisMonth: number;
        }, limits: {
            maxUsers: number;
            maxStorage: number;
            maxApiCalls: number;
        }) => boolean;
        calculateUsagePercentage: (current: number, limit: number) => number;
        validateTenantConfig: (config: any) => {
            isValid: boolean;
            errors: string[];
        };
    };
};
//# sourceMappingURL=tenant-schemas.d.ts.map