import { ComponentInterface } from '../../stencil-public-runtime';
import { HTMLStencilElement } from '../../stencil-public-runtime';
import { BalBreakpointObserver, BalBreakpoints } from '../../utils/breakpoints';
import { BalConfigObserver, BalConfigState } from '../../utils/config';
import { Loggable, LogInstance } from '../../utils/log';
export declare class Logo implements ComponentInterface, Loggable, BalBreakpointObserver, BalConfigObserver {
    private animationItem;
    private animatedLogoElement;
    private animationFunction?;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    el: HTMLStencilElement;
    isTouch: boolean;
    doesConfigAllowAnimation: boolean;
    configBrand: BalProps.BalLogoBrand;
    /**
     * PUBLIC PROPERTY API
     * ------------------------------------------------------
     */
    /**
     * Defines the color of the logo.
     */
    color: BalProps.BalLogoColor;
    /**
     * Size of the logo svg
     */
    size: BalProps.BalLogoSize;
    /**
     * Defines the brand of the logo. Default is 'baloise'.
     */
    brand: BalProps.BalLogoBrand;
    /**
     * Defines if the animation should be active
     */
    animated: boolean;
    animatedWatcher(): void;
    /**
     * LIFECYCLE
     * ------------------------------------------------------
     */
    connectedCallback(): void;
    componentDidUpdate(): void;
    componentDidLoad(): void;
    disconnectedCallback(): void;
    /**
     * LISTENERS
     * ------------------------------------------------------
     */
    breakpointListener(breakpoints: BalBreakpoints): void;
    configChanged(state: BalConfigState): void;
    /**
     * PRIVATE METHODS
     * ------------------------------------------------------
     */
    private get isHelvetia();
    private get isAnimated();
    private resetAnimation;
    private loadAnimation;
    private destroyAnimation;
    /**
     * RENDER
     * ------------------------------------------------------
     */
    render(): any;
}
