import { Context } from '../../../../../client/context';
import { Element } from '../../../../../client/element';
import { Mode } from '../../../../../client/mode';
import { Position } from '../../../../../client/util/geometry/types';
import { System } from '../../../../../system';
import { Dict } from '../../../../../types/Dict';
export declare const DEFAULT_N = 4;
export declare const DEFAULT_K = 4;
export declare const DEFAULT_R = 42;
export declare const DEFAULT_MODE = "none";
export interface Props {
    style?: Dict<string>;
    className?: string;
    disabled?: boolean;
    r?: number;
    mode?: Mode;
    x?: number;
    y?: number;
    context?: Context;
}
export declare const DEFAULT_STYLE: {
    position: string;
    top: string;
    left: string;
    width: string;
    height: string;
    color: string;
};
export default class Bot extends Element<HTMLDivElement, Props> {
    private _r;
    private _x;
    private _y;
    private _tx;
    private _ty;
    private _pointer_position;
    private _pointer_down_position;
    private _pointer_down;
    private _pointer_occluded;
    private _pointer_down_count;
    private _pointer_enter_count;
    private _pointer_inside;
    private _pointer_visible;
    private _pointer_tracked;
    private _bot;
    private _eye_ellipse;
    private _eye_ball;
    private _eye_brow;
    private _laser;
    private _laser_ray;
    private _laser_focus;
    private _removed;
    private _move_timeout;
    private _container;
    private _svg;
    private _children;
    private _container_x;
    private _container_y;
    private _container_rx;
    private _container_ry;
    private _container_rz;
    private _container_sx;
    private _container_sy;
    private _move_animation_frame;
    private _sync_animation_frame;
    constructor($props: Props, $system: System);
    private _position_observer;
    private _resize_observer;
    private _enabled;
    private _disabled;
    private _refresh_enabled;
    private _reset_move_timeout;
    private _enable;
    private _disable;
    private _pointing_self;
    private _pointing_self_count;
    private _synced;
    private _get_pointer_xyz;
    private _get_target_xyz;
    private _temp_x;
    private _temp_y;
    private _temp_z;
    private _tick_body;
    private _center;
    getPosition: () => Position;
    setPosition: ({ x, y }: Position) => void;
    setOccluded: (pointerId: number, occluded: boolean) => void;
    private _start_move;
    _move_tick: () => void;
    private _start_sync;
    private _sync_tick;
    private _onPointerEnter;
    private __onPointerEnter;
    private _onPointerLeave;
    private __onPointerLeave;
    private _onContextPointerEnter;
    private __onContextPointerEnter;
    private _onContextPointerLeave;
    private __onContextPointerLeave;
    private _onContextPointerCancel;
    private _onContextPointerMove;
    private _getXY;
    private _onContextPointerDown;
    private _laser_position;
    private _remove_pointer_down;
    private _onContextPointerUp;
    private _removePointerLaser;
    private _width;
    private _height;
    private __onContextResize;
    private _resizeSVG;
    private _translate;
    private _onContextEnabled;
    private _onContextDisabled;
    private _unlisten_context;
    private _following;
    private _dnd;
    _follow: () => void;
    private _get_color;
    private _tick_color;
    _unfollow: () => void;
    private _context_unlisten;
    private _document_listener;
    private _first;
    onMount(): void;
    onUnmount($context: Context): void;
    onPropChanged(prop: string, current: any): void;
}
