import { ElementRef, Injector, OnInit } from '@angular/core';
import { Strings } from '../../generated/strings';
import { AppContextService } from '../../service/app-context.service';
import { CoreBaseComponent } from '../common/base.component';
import { DialogService } from '../dialog/dialog.service';
import { BannerItem } from './models/banner-item';
import * as i0 from "@angular/core";
/**
 *
 * @smeDoc {@label Banner @id sme-banner}
 *
 * @overview
 * @file {@filepath ./examples/banner-overview.md}
 *
 * @example {@label Basic Usage @id basic-usage}
 * @file {@filename component.ts @filepath ./examples/banner-example.component.ts}
 * @file {@filename component.html @filepath ./examples/banner-example.component.html}
 *
 */
/**
 * The component definition of the banner control.
 */
export declare class BannerComponent extends CoreBaseComponent implements OnInit {
    private appContextService;
    private dialogService;
    /**
     * The source name to use for logging
     */
    protected get logSourceName(): string;
    /**
     * The carousel content view child.
     */
    carouselContentViewChild: ElementRef;
    /**
     * The banner items to display.
     */
    items: BannerItem[];
    /**
     * Gets the position in the carousel.
     */
    get carouselPosition(): string;
    /**
     * Gets the external icon of the current banner item.
     */
    get currentExternalIcon(): string;
    /**
     * Gets the current banner item's font icon, if available.
     */
    get currentFontIcon(): string;
    /**
     * Gets the current banner item being displayed.
     */
    get currentItem(): BannerItem;
    /**
     * Resource strings.
     */
    strings: Strings;
    /**
     * Gets the content of the carousel.
     */
    private get carouselContent();
    /**
     * Whether the component is currently animating.
     */
    private animating;
    /**
     * The index of the current banner item.
     */
    private carouselIndex;
    /**
     * Initializes a new instance of the BannerComponent class.
     *
     * @param appContextService The app context service.
     * @param dialogService The dialog service.
     * @param injector The injector
     */
    constructor(appContextService: AppContextService, dialogService: DialogService, injector: Injector);
    /**
     * The method called after the component inputs are set.
     */
    ngOnInit(): void;
    /**
     * The method called when the carousel left arrow button button is clicked.
     */
    onCarouselLeftArrowButtonClick(): void;
    /**
     * The method called when the carousel right arrow button is clicked.
     */
    onCarouselRightArrowButtonClick(): void;
    /**
     * The method called when the dismiss button is clicked.
     */
    onDismissItemButtonClick(): void;
    /**
     * The method called when the set up link is clicked.
     */
    onSetUpClick(item: BannerItem): void;
    /**
     * The method called when the learn more link is clicked.
     */
    onExternalLinkClick(item: BannerItem): void;
    /**
     * The method called when the learn more link is hovered on.
     */
    onExternalLinkHover(item: BannerItem): void;
    /**
     * Wrapper method for banner telemetry traces.
     */
    private trace;
    /**
     * Animates the carousel for going backward.
     *
     * @returns A void observable of the animation event.
     */
    private animateCarouselBackward;
    /**
     * Animates the carousel for going forward.
     *
     * @returns A void observable of the animation event.
     */
    private animateCarouselForward;
    /**
     * Updates the hide settings of the current banner item.
     *
     * @param hideType The preferred settings of hiding the current banner from the user.
     * @returns A void observable of updating the banner setting.
     */
    private updateBannerHideSettings;
    static ɵfac: i0.ɵɵFactoryDeclaration<BannerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BannerComponent, "sme-banner", never, { "items": "items"; }, {}, never, never, false, never>;
}
