import { BannerSize } from './request/banner/BannerSize';
import type { BannerAdStateListener, InterstitialAdStateListener, NativeAdStateListener, RewardedAdStateListener } from './show/AdStateListener';
import { BannerPosition } from './show/banner/BannerPosition';
import { NativeAdDispatch } from './show/native/NativeAdDispatch';
export declare namespace ReactNativeTapsell {
    interface RequestCourier {
        /**
         * Requests a rewarded ad for the specified zone.
         *
         * @param {string} zoneId - The ID of the zone for the ad request
         * @return {Promise<string>} A promise that resolves with the ad content
         */
        requestRewardedAd(zoneId: string): Promise<string>;
        /**
         * Requests an interstitial ad for the specified zone.
         *
         * @param {string} zoneId - The ID of the zone for the ad request
         * @return {Promise<string>} A promise that resolves with the ad content
         */
        requestInterstitialAd(zoneId: string): Promise<string>;
        /**
         * Requests a banner advertisement for the specified zone and size.
         *
         * @param {string} zoneId - The ID of the zone for the ad request.
         * @param {BannerSize} bannerSize - The size of the banner ad to request.
         * @return {Promise<string>} A promise that resolves to the requested banner ad.
         */
        requestBannerAd(zoneId: string, bannerSize: BannerSize): Promise<string>;
        /**
         * Requests a native ad for the specified zone.
         *
         * @param {string} zoneId - The ID of the zone for the ad request
         * @return {Promise<string>} A promise that resolves with the ad content
         */
        requestNativeAd(zoneId: string): Promise<string>;
        /**
         * Requests multiple native ads for the specified zone.
         *
         * @param {string} zoneId - The ID of the zone for the ad request
         * @param {number} maximumCount - The maximum number of ads to request
         * @return {Promise<string>} A promise that resolves with the ad content
         */
        requestMultipleNativeAd(zoneId: string, maximumCount: number): Promise<string>;
    }
    interface ShowCourier {
        /**
         * Show a rewarded ad with the given ID and listen for ad state changes.
         *
         * @param {string} adId - The ID of the ad to show
         * @param {RewardedAdStateListener} listener - The listener for ad state changes
         * @return {void}
         */
        showRewardedAd(adId: string, listener: RewardedAdStateListener): void;
        /**
         * Show an interstitial ad with the given ID and listen for ad state changes.
         *
         * @param {string} adId - The ID of the ad to show
         * @param {InterstitialAdStateListener} listener - The listener for ad state changes
         * @return {void}
         */
        showInterstitialAd(adId: string, listener: InterstitialAdStateListener): void;
        /**
         * Displays a banner advertisement at the specified position.
         *
         * @param {string} adId - The identifier of the ad to display.
         * @param {BannerPosition} bannerPosition - The position to display the banner ad.
         * @param {BannerAdStateListener} listener - The listener for ad state changes.
         * @return {void}
         */
        showBannerAd(adId: string, bannerPosition: BannerPosition, listener: BannerAdStateListener): void;
        /**
         * Show a native ad with the given ID and listen for ad state changes.
         *
         * @param {string} adId - The ID of the ad to show
         * @param {NativeAdDispatch} adDispatch - The callbacks for the native ad content
         * @param {NativeAdStateListener} listener - The listener for ad state changes
         * @return {void}
         */
        showNativeAd(adId: string, adDispatch: NativeAdDispatch, listener: NativeAdStateListener): void;
        /**
         * Click a native ad with the given ID
         *
         * @param {string} adId - The ID of the ad to show
         * @return {void}
         */
        clickNativeAd(adId: string): void;
        /**
         * Destroys the banner ad with the given ID.
         *
         * @param {string} adId - The ID of the ad to destroy
         * @return {void}
         */
        destroyBannerAd(adId: string): void;
        /**
         * Destroys the native ad with the given ID.
         *
         * @param {string} adId - The ID of the ad to destroy
         * @return {void}
         */
        destroyNativeAd(adId: string): void;
    }
}
//# sourceMappingURL=ReactNativeTapsell.d.ts.map