import { EventEmitter } from '../../stencil.core';
import { PlayerState } from '../../utils/player-state';
import { PlayMode } from '../../utils/player-mode';
export declare class LottiePlayer {
    container: HTMLElement;
    /**
     * Play mode.
     */
    mode: PlayMode;
    /**
     * Autoplay animation on load
     */
    autoplay: boolean;
    /**
     * Background color.
     */
    background?: string;
    /**
     * Show controls.
     */
    controls: boolean;
    /**
     * Number of times to loop animation.
     */
    count?: number;
    /**
     * Direction of animation
     */
    direction: number;
    /**
     * Whether to play on mouse hover
     */
    hover: boolean;
    /**
     * Whether to loop animation
     */
    loop: boolean;
    /**
     * Renderer to use.
     */
    renderer: 'svg';
    /**
     * Animation speed.
     */
    speed: number;
    /**
     * Bodymovin JSON data or URL to json.
     */
    src?: string;
    /**
     * Player state.
     */
    currentState: PlayerState;
    seeker: any;
    intermission: number;
    error: EventEmitter;
    frame: EventEmitter;
    complete: EventEmitter;
    looped: EventEmitter;
    ready: EventEmitter;
    loaded: EventEmitter;
    playing: EventEmitter;
    paused: EventEmitter;
    stopped: EventEmitter;
    freezed: EventEmitter;
    private _io?;
    private _lottie?;
    private _prevState?;
    private _counter;
    componentDidLoad(): void;
    load(src: string | object): void;
    /**
     * Start playing animation.
     */
    play(): Promise<void>;
    /**
     * Stop playing animation.
     */
    pause(): Promise<void>;
    /**
     * Stops animation play.
     */
    stop(): Promise<void>;
    /**
     * Seek to a given frame.
     */
    seek(value: number | string): Promise<void>;
    /**
     * Freeze animation play.
     * This internal state pauses animation and is used to differentiate between
     * user requested pauses and component instigated pauses.
     */
    freeze(): void;
    getLottie(): Promise<any>;
    /**
     * Sets animation play speed
     * @param value Playback speed.
     */
    setSpeed(value?: number): Promise<void>;
    /**
     * Animation play direction.
     * @param value Direction values.
    */
    setDirection(value: number): Promise<void>;
    /**
     * Sets the looping of the animation.
     *
     * @param value Whether to enable looping. Boolean true enables looping.
     */
    setLooping(value: boolean): Promise<void>;
    /**
     * Toggle playing state.
     */
    togglePlay(): Promise<void>;
    /**
     * Toggles animation looping.
     */
    toggleLooping(): Promise<void>;
    renderButtonIcon(isPlaying: any): any;
    renderControls(): any;
    render(): any;
    /**
    * Handle visibility change events.
    */
    private onVisibilityChange;
    /**
    * Handles click and drag actions on the progress track.
    */
    private handleSeekChange;
}
