import type { ATAdInfo, AdError, ATAdEventPayload, ATAdRequest, ATShowConfig, ATAdStatusInfo } from '../types';
/**
 * 开屏监听器。load 失败/超时经此上报（不走 Promise.reject）。
 */
export interface ATSplashListener {
    /** 加载成功；isTimeout 表示是否为超时后兜底返回。 */
    onSplashAdLoaded?: (isTimeout: boolean) => void;
    onSplashAdLoadFail?: (error: AdError) => void;
    onSplashAdTimeout?: () => void;
    onSplashAdShow?: (info: ATAdInfo) => void;
    onSplashAdShowFailed?: (error: AdError) => void;
    onSplashAdClick?: (info: ATAdInfo) => void;
    onSplashAdClose?: (info: ATAdInfo) => void;
    onDeeplinkCallback?: (info: ATAdInfo, success: boolean) => void;
    onDownloadConfirm?: (info: ATAdInfo) => void;
}
/** 开屏 show 配置 = ATShowConfig + 桥内容器高度（heightRatio 优先；都不传则全屏）。 */
export type SplashShowConfig = ATShowConfig & {};
/**
 * 开屏广告（一 placementId 一实例）。show 渲染进容器（高度可配，通过 heightRatio 设置）。
 */
export declare class ATSplashAd {
    private readonly placementId;
    private mainListener?;
    private adSourceListener?;
    private multipleLoadedListener?;
    private registered;
    constructor(placementId: string);
    private ensureRegistered;
    private route;
    /** 加载（adRequest 底价/渠道；fetchAdTimeout 毫秒；失败/超时走 Event）。 */
    load(adRequest?: ATAdRequest, fetchAdTimeout?: number): void;
    /** 展示。scenarioOrConfig 为 string 时走 scenario；为对象时走 showConfig（可含 heightRatio/heightPx）。 */
    show(scenarioOrConfig?: string | SplashShowConfig): 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: ATSplashListener): void;
    setAdRevenueListener(listener: (info: ATAdInfo) => void): void;
    setAdMultipleLoadedListener(listener: (info: ATAdInfo) => void): void;
    setAdSourceStatusListener(listener: (payload: ATAdEventPayload) => void): void;
    removeAdListener(): void;
}
export declare function dispatchSplashEvent(l: ATSplashListener, p: ATAdEventPayload): void;
//# sourceMappingURL=ATSplashAd.d.ts.map