/**
 * src/tenants/manager.ts
 * مدير المستأجرين — إدارة الحسابات والعملاء ومساحات العمل
 */
import { z } from 'zod';
export declare const createTenantSchema: z.ZodObject<{
    business_name: z.ZodString;
    business_name_ar: z.ZodOptional<z.ZodString>;
    agent_name: z.ZodDefault<z.ZodString>;
    whatsapp_phone: z.ZodString;
    owner_id: z.ZodString;
    owner_name: z.ZodString;
    owner_phone: z.ZodOptional<z.ZodString>;
    owner_email: z.ZodOptional<z.ZodString>;
    plan: z.ZodDefault<z.ZodEnum<{
        trial: "trial";
        starter: "starter";
        pro: "pro";
        enterprise: "enterprise";
    }>>;
    settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export type CreateTenantInput = z.infer<typeof createTenantSchema>;
export interface Tenant {
    id: string;
    owner_id: string;
    business_name: string;
    business_name_ar?: string;
    agent_name: string;
    whatsapp_phone: string;
    owner_name: string;
    owner_phone?: string;
    owner_email?: string;
    plan: string;
    status: 'active' | 'suspended' | 'trial';
    settings: Record<string, unknown>;
    created_at: string;
    updated_at: string;
}
export interface Customer {
    id: string;
    tenant_id: string;
    phone: string;
    name?: string;
    metadata: Record<string, unknown>;
    first_seen_at: string;
    last_seen_at: string;
    message_count: number;
}
/**
 * البحث عن مستأجر برقم الواتساب
 * هذه الدالة الأكثر استخداماً — كل رسالة واردة تمر من هنا
 */
export declare function getTenantByPhone(whatsappPhone: string): Promise<Tenant | null>;
export declare function getTenantByOwnerId(ownerId: string): Promise<Tenant | null>;
/**
 * البحث عن مستأجر بالمعرف
 */
export declare function getTenantById(id: string): Promise<Tenant | null>;
/**
 * إنشاء مستأجر جديد + تجهيز مساحة العمل
 */
export declare function createTenant(input: CreateTenantInput): Promise<Tenant>;
/**
 * تحديث بيانات المستأجر
 */
export declare function updateTenant(id: string, updates: Partial<Pick<Tenant, 'business_name' | 'business_name_ar' | 'agent_name' | 'owner_name' | 'owner_email' | 'plan' | 'status' | 'settings'>>): Promise<Tenant>;
/**
 * البحث عن عميل أو إنشاء سجل جديد
 * يُستدعى مع كل رسالة واردة
 */
export declare function getOrCreateCustomer(tenantId: string, phone: string, name?: string): Promise<Customer>;
/**
 * سرد عملاء المستأجر
 */
export declare function listCustomers(tenantId: string, options?: {
    limit?: number;
    offset?: number;
    orderBy?: string;
}): Promise<{
    customers: Customer[];
    total: number;
}>;
//# sourceMappingURL=manager.d.ts.map