import { AddChildFromBuilder, ImageSource, View } from '@nativescript/core';
import { ManagerRequestOptions, RequestOptions, AdEventListener } from '..';
import { AdEventType } from '../common';
import { NativeAdEventListener, NativeAdViewBase, MediaViewBase, MediaAspectRatio, AdChoicesPlacement, VideoStatus, NativeAdEventType } from './common';
import { IMediaContent, IMuteThisAdReason, INativeAd, INativeAdImage, IVideoController, NativeAdOptions, UnconfirmedClickListener, INativeAdLoader } from '.';
export { AdChoicesPlacement, AdEventType, VideoStatus, MediaAspectRatio, NativeAdEventType };
export declare class NativeAdView extends NativeAdViewBase implements AddChildFromBuilder {
    _native: com.google.android.gms.ads.nativead.NativeAdView;
    _child: View;
    createNativeView(): com.google.android.gms.ads.nativead.NativeAdView;
    _addChildFromBuilder(name: string, value: any): void;
    _adChoicesView: View;
    get adChoicesView(): View;
    set adChoicesView(value: View);
    _advertiserView: View;
    get advertiserView(): View;
    set advertiserView(value: View);
    _bodyView: View;
    get bodyView(): View;
    set bodyView(value: View);
    _callToActionView: View;
    get callToActionView(): View;
    set callToActionView(value: View);
    _headlineView: View;
    get headlineView(): View;
    set headlineView(value: View);
    _iconView: View;
    get iconView(): View;
    set iconView(value: View);
    _imageView: View;
    get imageView(): View;
    set imageView(value: View);
    _mediaView: MediaView;
    get mediaView(): MediaView;
    set mediaView(value: MediaView);
    _nativeAd: NativeAd;
    get nativeAd(): NativeAd;
    set nativeAd(value: NativeAd);
    _priceView: View;
    get priceView(): View;
    set priceView(value: View);
    _starRatingView: View;
    get starRatingView(): View;
    set starRatingView(value: View);
    _storeView: View;
    get storeView(): View;
    set storeView(value: View);
}
export declare class NativeAdLoader implements INativeAdLoader {
    _adUnitId: string;
    _nativeAdOptions?: NativeAdOptions;
    _requestOptions?: RequestOptions;
    _listener: NativeAdEventListener;
    _native: com.google.android.gms.ads.AdLoader;
    constructor(adUnitId: string, requestOptions?: RequestOptions, nativeAdOptions?: NativeAdOptions);
    isLoading(): boolean;
    load(maxAdCount?: number): void;
    load(requestOptions?: ManagerRequestOptions): void;
    load(): void;
    onAdEvent(listener: NativeAdEventListener): void;
    get native(): com.google.android.gms.ads.AdLoader;
    get android(): com.google.android.gms.ads.AdLoader;
}
export declare class NativeAd implements INativeAd {
    _adUnitId: string;
    _native: com.google.android.gms.ads.nativead.NativeAd;
    _listener: AdEventListener;
    static fromNative(nativeAd: com.google.android.gms.ads.nativead.NativeAd): NativeAd;
    get adUnitId(): string;
    onAdEvent(listener: AdEventListener): void;
    destroy(): void;
    get native(): com.google.android.gms.ads.nativead.NativeAd;
    get android(): com.google.android.gms.ads.nativead.NativeAd;
    get body(): string;
    get callToAction(): string;
    get headline(): string;
    get price(): string;
    get mediaContent(): MediaContent;
    get customMuteThisAdAvailable(): boolean;
    isCustomClickGestureEnabled(): boolean;
    enableCustomClickGesture(): void;
    get advertiser(): string;
    recordCustomClickGesture(): void;
    _unconfirmedClickListener?: UnconfirmedClickListener;
    _unconfirmedClickListenerNative?: com.google.android.gms.ads.nativead.NativeAd.UnconfirmedClickListener;
    setUnconfirmedClickListener(listener?: UnconfirmedClickListener): void;
    get icon(): NativeAdImage;
    get store(): string;
    get starRating(): number;
    get muteThisAdReasons(): any[];
    muteThisAdWithReason(reason: MuteThisAdReason): void;
    get images(): any[];
}
export declare class MediaContent implements IMediaContent {
    _native: com.google.android.gms.ads.MediaContent;
    static fromNative(content: com.google.android.gms.ads.MediaContent): MediaContent;
    get aspectRatio(): number;
    get currentTime(): number;
    get duration(): number;
    get mainImage(): any;
    set mainImage(value: any);
    get hasVideoContent(): boolean;
    get native(): com.google.android.gms.ads.MediaContent;
    get android(): com.google.android.gms.ads.MediaContent;
}
export declare class VideoController implements IVideoController {
    _native: com.google.android.gms.ads.VideoController;
    _status: VideoStatus;
    static fromNative(controller: com.google.android.gms.ads.VideoController): VideoController;
    clickToExpandEnabled(): boolean;
    customControlsEnabled(): boolean;
    pause(): void;
    play(): void;
    get mute(): boolean;
    set mute(value: boolean);
    stop(): void;
    get status(): VideoStatus;
    get native(): com.google.android.gms.ads.VideoController;
    get android(): com.google.android.gms.ads.VideoController;
}
export declare class MediaView extends MediaViewBase {
    _contentView: com.google.android.gms.ads.nativead.MediaView;
    createNativeView(): com.google.android.gms.ads.nativead.MediaView;
    get native(): com.google.android.gms.ads.nativead.MediaView;
}
export declare class NativeAdImage implements INativeAdImage {
    _native: com.google.android.gms.ads.nativead.NativeAd.Image;
    static fromNative(image: com.google.android.gms.ads.nativead.NativeAd.Image): NativeAdImage;
    get image(): ImageSource;
    get url(): string;
    get scale(): number;
    get native(): com.google.android.gms.ads.nativead.NativeAd.Image;
    get android(): com.google.android.gms.ads.nativead.NativeAd.Image;
}
export declare class MuteThisAdReason implements IMuteThisAdReason {
    _native: com.google.android.gms.ads.MuteThisAdReason;
    static fromNative(reason: com.google.android.gms.ads.MuteThisAdReason): MuteThisAdReason;
    get description(): string;
    get native(): com.google.android.gms.ads.MuteThisAdReason;
    get android(): com.google.android.gms.ads.MuteThisAdReason;
}
