import { ComponentInterface } from '../../stencil-public-runtime';
import { HTMLStencilElement } from '../../stencil-public-runtime';
import { BalConfigObserver, BalConfigState } from '../../utils/config';
import { Loggable, LogInstance } from '../../utils/log';
export declare class Spinner implements ComponentInterface, Loggable, BalConfigObserver {
    private animationItem;
    private animationFunction?;
    private currentRaf;
    log: LogInstance;
    animated: boolean;
    createLogger(log: LogInstance): void;
    el: HTMLStencilElement;
    /**
     * PUBLIC PROPERTY API
     * ------------------------------------------------------
     */
    /**
     * If `true` the component can be used on dark background
     */
    inverted: boolean;
    /**
     * If `true` the component will not add the spinner animation svg
     */
    deactivated: boolean;
    deactivatedWatcher(newValue: boolean, oldValue: boolean): void;
    /**
     * Defines the color of the spinner.
     */
    color: BalProps.BalSpinnerColor;
    /**
     * If `true` the component is smaller
     */
    small: boolean;
    /**
     * Defines the look of the spinner
     */
    variation: BalProps.BalSpinnerVariation;
    variationWatcher(newValue: BalProps.BalSpinnerVariation, oldValue: BalProps.BalSpinnerVariation): void;
    /**
     * LIFECYCLE
     * ------------------------------------------------------
     */
    componentDidLoad(): void;
    disconnectedCallback(): void;
    /**
     * LISTENERS
     * ------------------------------------------------------
     */
    configChanged(state: BalConfigState): void;
    /**
     * PRIVATE METHODS
     * ------------------------------------------------------
     */
    private animate;
    private destroy;
    private shouldAnimate;
    private load;
    /**
     * GETTERS
     * ------------------------------------------------------
     */
    private getColor;
    /**
     * RENDER
     * ------------------------------------------------------
     */
    render(): any;
}
