import type { ATAdInfo, AdError, ATAdEventPayload, ATAdRequest, ATShowConfig, ATAdStatusInfo } from '../types';
import { NativeAd } from './NativeAd';
/** 加载期监听。 */
export interface ATNativeNetworkListener {
    onNativeAdLoaded?: () => void;
    onNativeAdLoadFail?: (error: AdError) => void;
}
/** 展示期监听（NativeAd.setNativeEventListener 用；含 video）。 */
export interface ATNativeEventListener {
    onNativeAdShow?: (info: ATAdInfo) => void;
    onNativeAdClicked?: (info: ATAdInfo) => void;
    onNativeAdClose?: (info: ATAdInfo) => void;
    onNativeAdVideoStart?: () => void;
    onNativeAdVideoEnd?: () => void;
    onNativeAdVideoProgress?: (progress: number) => void;
    onDeeplinkCallback?: (info: ATAdInfo, success: boolean) => void;
}
/**
 * Native 加载器。一 placementId 一实例，持**唯一** ATAdEvents 订阅，
 * 按 callbackName 把加载期事件给 networkListener、展示期事件给 NativeAd 的 eventListener。
 */
export declare class ATNative {
    private readonly placementId;
    private networkListener?;
    private eventListener?;
    private adSourceListener?;
    private multipleLoadedListener?;
    private readonly boundRoute;
    constructor(placementId: string, listener?: ATNativeNetworkListener);
    /** NativeAd 经此注册展示期监听（共用本实例的唯一订阅）。 */
    _setEventListener(l: ATNativeEventListener): void;
    private route;
    makeAdRequest(adRequest?: ATAdRequest, extra?: Record<string, unknown>): void;
    /**
     * 从缓存池消费一条广告，返回带 adId 的 NativeAd 对象（= 安卓 getNativeAd()）。
     * 列表里多次调用各取一条不同的；池空返回 null（调用方决定 makeAdRequest 补货）。
     */
    getNativeAd(_showConfig?: ATShowConfig): Promise<NativeAd | null>;
    checkAdStatus(): Promise<ATAdStatusInfo>;
    checkValidAdCaches(): Promise<ATAdInfo[]>;
    static entryAdScenario(placementId: string, scenarioId: string, tkExtra?: Record<string, unknown>): void;
    setShowConfig(config: ATShowConfig): void;
    setLocalExtra(map: Record<string, unknown>): void;
    setTKExtra(map: Record<string, unknown>): void;
    setAdListener(listener: ATNativeNetworkListener): void;
    setAdMultipleLoadedListener(listener: (info: ATAdInfo) => void): void;
    setAdSourceStatusListener(listener: (payload: ATAdEventPayload) => void): void;
    /** 单条广告销毁时回收其视图级订阅（由 {@link NativeAd.destroy} 调；不影响本加载器的 placementID 订阅）。 */
    _releaseAd(adId: string): void;
    /** 销毁本 placement 缓存（含已 load 未 show 的条）；不影响其他 placement。 */
    destroy(): void;
    /** 释放本加载器的 placementID 订阅（整体不再用时调）。 */
    dispose(): void;
}
//# sourceMappingURL=ATNative.d.ts.map