import type { ATAdInfo, AdError, ATAdEventPayload, ATAdRequest, ATShowConfig, ATAdStatusInfo } from '../types';
/**
 * 插屏监听器。无 reward/again，有 show + 视频播放回调。
 */
export interface ATInterstitialListener {
    onInterstitialAdLoaded?: () => void;
    onInterstitialAdLoadFail?: (error: AdError) => void;
    onInterstitialAdShow?: (info: ATAdInfo) => void;
    /** 展示失败（`show()` 之后未能展示）。 */
    onInterstitialAdShowFailed?: (error: AdError) => void;
    onInterstitialAdClose?: (info: ATAdInfo) => void;
    onInterstitialAdClicked?: (info: ATAdInfo) => void;
    onInterstitialAdVideoStart?: (info: ATAdInfo) => void;
    onInterstitialAdVideoEnd?: (info: ATAdInfo) => void;
    onInterstitialAdVideoError?: (error: AdError) => void;
    onDeeplinkCallback?: (info: ATAdInfo, success: boolean) => void;
    onDownloadConfirm?: (info: ATAdInfo) => void;
    /** GDT 奖励式插屏任务回调。 */
    onInterstitialAdReward?: (info: ATAdInfo) => void;
}
/**
 * 插屏广告（一 placementId 一实例）。
 * 实例内按 callbackName 把 AdSource/MultipleLoaded 分流到对应 listener。
 */
export declare class ATInterstitialAd {
    private readonly placementId;
    private mainListener?;
    private adSourceListener?;
    private multipleLoadedListener?;
    private registered;
    constructor(placementId: string);
    private ensureRegistered;
    private route;
    load(adRequest?: ATAdRequest): void;
    /** 展示（失败走 Event）。scenarioOrConfig 为 string 时走 scenario；为对象时走 showConfig。 */
    show(scenarioOrConfig?: string | ATShowConfig): void;
    isAdReady(): Promise<boolean>;
    checkAdStatus(): Promise<ATAdStatusInfo>;
    checkValidAdCaches(): Promise<ATAdInfo[]>;
    static entryAdScenario(placementId: string, scenarioId: string, tkExtra?: Record<string, unknown>): void;
    setLocalExtra(map: Record<string, unknown>): void;
    setTKExtra(map: Record<string, unknown>): void;
    setAdListener(listener: ATInterstitialListener): void;
    setAdRevenueListener(listener: (info: ATAdInfo) => void): void;
    setAdMultipleLoadedListener(listener: (info: ATAdInfo) => void): void;
    setAdSourceStatusListener(listener: (payload: ATAdEventPayload) => void): void;
    removeAdListener(): void;
}
export declare function dispatchInterstitialEvent(l: ATInterstitialListener, p: ATAdEventPayload): void;
//# sourceMappingURL=ATInterstitialAd.d.ts.map