import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { GptConfig } from './gpt.config';
import { SafeFrameConfig } from './ng-gpt-googletag.interface';
import { NgGptService } from './ng-gpt.service';
import { GptRefreshService } from './services';
import { GptIDGeneratorService } from './services/gpt-idGenerator.service';
import * as i0 from "@angular/core";
export declare class GptRefreshEvent {
    type: string;
    slot: any;
    data?: any;
}
interface SizeMapping {
    viewport: [number, number];
    sizes: [number, number][];
}
interface TargetingArguments {
    [key: string]: any;
}
export declare class NgGptAdDirective implements OnInit, AfterViewInit, OnDestroy {
    private platformID;
    private elementRef;
    private gpt;
    private gptRefresh;
    private gptIDGenerator;
    private config;
    id: string;
    adUnit: string;
    sizes: [number, number][] | string;
    sizeMapping: SizeMapping[];
    forceSafeFrame: boolean;
    safeFrameConfig: SafeFrameConfig;
    refresh: number;
    collapseEmptyDivs: boolean;
    targetingArguments: TargetingArguments;
    afterRefresh: EventEmitter<GptRefreshEvent>;
    private slot;
    private onSameNavigation;
    private scripts;
    private exclusions;
    constructor(platformID: Object, elementRef: ElementRef, gpt: NgGptService, gptRefresh: GptRefreshService, gptIDGenerator: GptIDGeneratorService, config: GptConfig, router: Router);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private setSizeMapping;
    private defineSlot;
    private refreshContent;
    get isHidden(): any;
    getState(): Readonly<{
        sizes: string[] | [number, number][];
        sizeMapping: SizeMapping[];
        targetingArguments: TargetingArguments;
        exclusions: any[];
        adUnit: string;
        forceSafeFrame: boolean;
        safeFrameConfig: SafeFrameConfig;
        refresh: number;
        scripts: any[];
        collapseEmptyDivs: boolean;
    }>;
    checkRequiredFields(input: any, name: string): void;
    addExclusion(exclusion: any): void;
    addScript(script: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgGptAdDirective, [null, null, null, null, null, null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NgGptAdDirective, "gpt-ad", never, { "id": "id"; "adUnit": "adUnit"; "sizes": "sizes"; "sizeMapping": "sizeMapping"; "forceSafeFrame": "forceSafeFrame"; "safeFrameConfig": "safeFrameConfig"; "refresh": "refresh"; "collapseEmptyDivs": "collapseEmptyDivs"; "targetingArguments": "targetingArguments"; }, { "afterRefresh": "afterRefresh"; }, never>;
}
export {};
