interface Logger {
    debug(message: string, args?: unknown): void;
    info(message: string, args?: unknown): void;
    warn(message: string, args?: unknown): void;
    error(message: string, args?: unknown): void;
}


declare enum WebExtensionSdkEventType {
    AFFILIATE_ACTIVATION_DETECTED = "AFFILIATE_ACTIVATION_DETECTED",
}

interface AffiliateActivationDetectedEvent {
    type:  WebExtensionSdkEventType.AFFILIATE_ACTIVATION_DETECTED;
    data: {
        detectedUrl: string;
        detectedUrlCapturedOn: number;
        finalUrl: string;
        finalUrlCapturedOn: number;
    };
}

type WebExtensionSdkEvent = AffiliateActivationDetectedEvent;


type TabDetails = {
    tabId: number;
    url: string;
};
type EventListener = (event: WebExtensionSdkEvent, tabDetails: TabDetails) => void;

interface SleekWebExtensionSdk {
    registerEventListener(listener: EventListener): void;
    getAllKnownInstalledExtensions(): Promise<ExtensionInfo[]>;
}

interface SleekWebExtensionSdkOptions {
    enableDebug: boolean;
    loggerOverride: Logger;
    envOverride: Record<string, string | undefined>;
    skipManifestValidation: boolean;
    disableLogger: boolean;
}

declare function initializeWebExtensionSdk(apiKey: string, options?: Partial<SleekWebExtensionSdkOptions>): Promise<SleekWebExtensionSdk>;
declare function getWebExtensionSdkInstance(): SleekWebExtensionSdk;

Event information

Each event is fired per-tab when something happens in the SDK. In detail:
  • AFFILIATE_ACTIVATION_DETECTION - fired when the SDK detects an affiliate activation on a tab.