import type { ATAdInfo, AdError, ATAdEventPayload, ATAdRequest, ATShowConfig, ATAdStatusInfo } from '../types';
/**
 * 激励监听器（含主流程与各广告源的回调）。
 * load/show 失败经此上报（不走 Promise.reject）。
 */
export interface ATRewardVideoListener {
    onRewardedVideoAdLoaded?: () => void;
    onRewardedVideoAdFailed?: (error: AdError) => void;
    onRewardedVideoAdPlayStart?: (info: ATAdInfo) => void;
    onRewardedVideoAdPlayEnd?: (info: ATAdInfo) => void;
    onRewardedVideoAdPlayFailed?: (error: AdError, info?: ATAdInfo) => void;
    onRewardedVideoAdClosed?: (info: ATAdInfo) => void;
    onRewardedVideoAdPlayClicked?: (info: ATAdInfo) => void;
    onReward?: (info: ATAdInfo) => void;
    onRewardFailed?: (info: ATAdInfo) => void;
    onDeeplinkCallback?: (info: ATAdInfo, success: boolean) => void;
    onDownloadConfirm?: (info: ATAdInfo) => void;
    onRewardedVideoAdAgainPlayStart?: (info: ATAdInfo) => void;
    onRewardedVideoAdAgainPlayEnd?: (info: ATAdInfo) => void;
    onRewardedVideoAdAgainPlayFailed?: (error: AdError, info: ATAdInfo) => void;
    onRewardedVideoAdAgainPlayClicked?: (info: ATAdInfo) => void;
    onAgainReward?: (info: ATAdInfo) => void;
    onAgainRewardFailed?: (info: ATAdInfo) => void;
}
/**
 * 激励视频广告（一 placementId 一实例）。
 * 回调经唯一 ATReactNativeEventEmitter → ATAdEvents 按 placementID 分发到此实例；
 * 实例内按 callbackName 把 AdSource/MultipleLoaded 分流到对应 listener（ATAdEvents 不增机制）。
 */
export declare class ATRewardVideoAd {
    private readonly placementId;
    private mainListener?;
    private adSourceListener?;
    private multipleLoadedListener?;
    private registered;
    constructor(placementId: string);
    private ensureRegistered;
    private route;
    /** 加载（adRequest 可含 atAdRequest 底价/渠道；失败走 onRewardedVideoAdFailed）。 */
    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: ATRewardVideoListener): void;
    setAdRevenueListener(listener: (info: ATAdInfo) => void): void;
    setAdMultipleLoadedListener(listener: (info: ATAdInfo) => void): void;
    setAdSourceStatusListener(listener: (payload: ATAdEventPayload) => void): void;
    removeAdListener(): void;
}
export declare function dispatchRewardEvent(l: ATRewardVideoListener, p: ATAdEventPayload): void;
//# sourceMappingURL=ATRewardVideoAd.d.ts.map