import type { Response } from 'express';
import { PrismaService } from '../common/prisma.service';
export declare class TrackingController {
    private prisma;
    constructor(prisma: PrismaService);
    resolveShort(code: string): Promise<{
        url: null;
    } | {
        url: string;
    }>;
    referral(code: string, to: string | undefined, res: Response): Promise<void>;
    simulate(ip: string, body: {
        code?: string;
        amount?: number;
        via?: 'click' | 'coupon';
        customerEmail?: string;
    }): Promise<{
        attributed: boolean;
        reason: string;
        affiliate?: undefined;
        orderId?: undefined;
        amount?: undefined;
        commission?: undefined;
        rule?: undefined;
        newBalance?: undefined;
    } | {
        attributed: boolean;
        affiliate: {
            id: string;
            name: string;
        };
        orderId: string;
        amount: number;
        commission: number;
        rule: string;
        newBalance: number;
        reason?: undefined;
    }>;
    multiCheckout(ip: string, body: {
        code?: string;
        customerEmail?: string;
        lineItems?: {
            vendor?: string;
            title?: string;
            price?: number;
            qty?: number;
        }[];
    }): Promise<{
        attributed: boolean;
        reason: string;
        orderId?: undefined;
        affiliate?: undefined;
        campaigns?: undefined;
        unmatchedAmount?: undefined;
        totalCommission?: undefined;
        newBalance?: undefined;
    } | {
        attributed: boolean;
        orderId: string;
        affiliate: {
            id: string;
            name: string;
            coupon: string | null;
        };
        campaigns: any[];
        unmatchedAmount: number;
        totalCommission: any;
        newBalance: number | null;
        reason?: undefined;
    }>;
}
