import { PrismaService } from '../common/prisma.service';
import { MarcadeoProvisioning } from '../integrations/marcadeo-provisioning.service';
import { ShopifyService } from '../integrations/shopify.service';
export declare class AdminAffiliatesController {
    private prisma;
    private marcadeo;
    private shopify;
    constructor(prisma: PrismaService, marcadeo: MarcadeoProvisioning, shopify: ShopifyService);
    affiliates(status?: string, q?: string): Promise<{
        id: string;
        name: string;
        email: string;
        status: import("@prisma/client").$Enums.AffiliateStatus;
        couponCode: string | null;
        clicks: number;
        sales: number;
        balance: number;
    }[]>;
    private approveAffiliate;
    approve(id: string): Promise<{
        ok: boolean;
        couponCode?: undefined;
        signupBonus?: undefined;
    } | {
        ok: boolean;
        couponCode: string;
        signupBonus: number;
    }>;
    bulkApprove(body: {
        ids?: string[];
    }): Promise<{
        ok: boolean;
        approved: number;
    }>;
    bulkReject(body: {
        ids?: string[];
    }): Promise<{
        ok: boolean;
        rejected: number;
    }>;
    bulkDelete(body: {
        ids?: string[];
    }): Promise<{
        ok: boolean;
        deleted: number;
    }>;
    reject(id: string): Promise<{
        ok: boolean;
    }>;
    affiliateDetail(id: string): Promise<{
        id: string;
        name: string;
        email: string;
        socialHandle: string | null;
        website: string | null;
        status: import("@prisma/client").$Enums.AffiliateStatus;
        paymentMethod: import("@prisma/client").$Enums.PayoutMethod | null;
        paymentDetails: import("@prisma/client/runtime/library").JsonValue;
        couponCode: string | null;
        couponDiscountType: string | null;
        couponDiscountValue: number | null;
        couponUsageLimitPerCustomer: number | null;
        couponMaxRedemptions: number | null;
        couponNewCustomersOnly: boolean;
        referralLink: string | null;
        commissionType: import("@prisma/client").$Enums.CommissionType | null;
        commissionValue: number | null;
        groupId: string | null;
        group: {
            name: string;
            id: string;
        } | null;
        tags: string[];
        notes: string | null;
        signupData: string | number | true | import("@prisma/client/runtime/library").JsonObject | import("@prisma/client/runtime/library").JsonArray;
        balance: number;
        clicks: number;
        sales: number;
        orders: {
            orderId: string;
            date: string;
            total: number;
            commission: number;
            status: import("@prisma/client").$Enums.OrderStatus;
        }[];
    } | null>;
    createAffiliate(body: Record<string, any>): Promise<{
        ok: boolean;
        id: string;
    }>;
    deleteAffiliate(id: string): Promise<{
        ok: boolean;
    }>;
    updateAffiliate(id: string, body: Record<string, any>): Promise<{
        ok: boolean;
    }>;
}
