import type { Affiliate, Campaign, Merchant } from '@prisma/client';
import { PrismaService } from '../common/prisma.service';
import { MarcadeoService } from './marcadeo.service';
export declare class MarcadeoProvisioning {
    private prisma;
    private marcadeo;
    private readonly log;
    constructor(prisma: PrismaService, marcadeo: MarcadeoService);
    private on;
    ensureAdvertiser(merchant: Merchant): Promise<string | null>;
    s2sInfo(merchant: Merchant): Promise<{
        postbackUrl: string;
        ips: Array<{
            id: number;
            ip_address: string;
            type: string;
            is_active: boolean;
        }>;
    }>;
    s2sAddIp(merchant: Merchant, ip: string, type?: 'SINGLE' | 'CIDR'): Promise<boolean>;
    s2sRemoveIp(merchant: Merchant, id: number | string): Promise<boolean>;
    syncAdvertiserProfile(merchant: Merchant): Promise<void>;
    ensureCampaign(merchant: Merchant, campaign: Campaign): Promise<{
        campaignId: string;
        goalId?: string;
    } | null>;
    ensureCampaignGoals(campaign: Campaign): Promise<void>;
    ensurePublisher(merchant: Merchant, affiliate: Affiliate): Promise<string | null>;
    syncAffiliatePayout(merchant: Merchant, affiliate: Affiliate): Promise<void>;
    affiliateDeepLink(merchant: Merchant, affiliate: Affiliate, destination: string): Promise<string | null>;
    affiliateCampaignLinks(merchant: Merchant, affiliate: Affiliate): Promise<Array<{
        campaignId: string;
        name: string;
        url: string;
        couponCode: string | null;
    }>>;
}
