import { PrismaService } from '../common/prisma.service';
import { MarcadeoProvisioning } from '../integrations/marcadeo-provisioning.service';
import { ShopifyService } from '../integrations/shopify.service';
export declare class AffiliatesController {
    private prisma;
    private marcadeo;
    private shopify;
    constructor(prisma: PrismaService, marcadeo: MarcadeoProvisioning, shopify: ShopifyService);
    signupConfig(): Promise<{
        noStore: boolean;
        programName?: undefined;
        branding?: undefined;
        signupDefaults?: undefined;
        fields?: undefined;
        recaptchaSiteKey?: undefined;
    } | {
        programName: string | null;
        branding: {
            logoUrl: string | null;
            brandColor: string | null;
            brandSecondaryColor: string | null;
            termsText: string | null;
        };
        signupDefaults: string | number | true | import("@prisma/client/runtime/library").JsonObject | import("@prisma/client/runtime/library").JsonArray;
        fields: {
            id: string;
            label: string;
            type: string;
            required: boolean;
        }[];
        recaptchaSiteKey: string | null;
        noStore?: undefined;
    }>;
    signup(body: {
        name?: string;
        email?: string;
        password?: string;
        social?: string;
        website?: string;
        signupData?: Record<string, unknown>;
        ref?: string;
        recaptchaToken?: string;
    }): Promise<{
        id: string;
        status: import("@prisma/client").$Enums.AffiliateStatus;
        message: string;
        web: string;
    }>;
    login(body: {
        email?: string;
        password?: string;
    }): Promise<{
        token: string;
        id: string;
        name: string;
        status: import("@prisma/client").$Enums.AffiliateStatus;
    }>;
    dashboard(id: string): Promise<{
        id: string;
        name: string;
        email: string;
        socialHandle: string | null;
        website: string | null;
        avatarUrl: string | null;
        status: import("@prisma/client").$Enums.AffiliateStatus;
        couponCode: string | null;
        couponDiscountType: string | null;
        couponDiscountValue: number | null;
        referralLink: string | null;
        balance: number;
        payable: number;
        held: number;
        mlm: {
            enabled: boolean;
            recruitLink?: string;
            downlineCount?: number;
            overrideEarnings?: number;
        };
        minPayout: number;
        payoutMethods: string[];
        notifyPrefs: any;
        stats: {
            clicks: number;
            sales: number;
            earnings: number;
            revenue: number;
            conversionRate: number;
        };
        paymentMethod: import("@prisma/client").$Enums.PayoutMethod | null;
        paymentDetails: import("@prisma/client/runtime/library").JsonValue;
        orders: {
            orderId: string;
            date: string;
            total: number;
            commission: number;
            via: string;
            status: import("@prisma/client").$Enums.OrderStatus;
        }[];
        payouts: {
            id: string;
            amount: number;
            status: import("@prisma/client").$Enums.PayoutStatus;
            method: import("@prisma/client").$Enums.PayoutMethod;
            reference: string | null;
            date: string;
        }[];
    }>;
    links(id: string): Promise<{
        brands: {
            campaignId: null;
            name: string;
            url: string | null;
            couponCode: string | null;
        }[];
    } | {
        brands: {
            campaignId: string;
            name: string;
            url: string;
            couponCode: string | null;
        }[];
    }>;
    products(id: string, q?: string): Promise<{
        products: {
            title: string;
            handle: string;
            url: string;
        }[];
    }>;
    shorten(id: string, body: {
        url?: string;
    }): Promise<{
        code: string;
        shortUrl: string;
    }>;
    deepLink(id: string, body: {
        url?: string;
    }): Promise<{
        url: string;
        tracked: boolean;
    }>;
    payment(id: string, body: {
        method?: string;
        details?: Record<string, unknown>;
    }): Promise<{
        ok: boolean;
    }>;
    updateProfile(id: string, body: {
        name?: string;
        socialHandle?: string;
        website?: string;
        avatarUrl?: string;
    }): Promise<{
        ok: boolean;
        name: string;
    }>;
    updateReferralCode(id: string, body: {
        code?: string;
    }): Promise<{
        ok: boolean;
        code: string;
    }>;
    saveNotifyPrefs(id: string, body: {
        sale?: boolean;
        payout?: boolean;
    }): Promise<{
        ok: boolean;
    }>;
    changePassword(id: string, body: {
        currentPassword?: string;
        newPassword?: string;
    }): Promise<{
        ok: boolean;
    }>;
    payoutRequest(id: string): Promise<{
        ok: boolean;
        requested: number;
    }>;
}
