import * as React from 'react';
export declare type Snapshot = {
    x: number;
    y: number;
};
export declare type ViewportCoordinates = {
    height: number;
    width: number;
    x: number;
    y: number;
};
export declare type Snapshots = Array<Snapshot>;
export interface Props {
    color: string;
    isActive: boolean;
    onSnapshot?: (snapshot: Snapshot) => void;
    posX: number;
    posY: number;
    showSnapshots: boolean;
    snapshotOpacity: number;
    snapshots: Snapshots;
    style?: Object;
    zoomLevel: number;
}
export interface State {
    centerCoords: ViewportCoordinates;
    isActive: boolean;
    x: number;
    y: number;
    snapshots: Snapshots;
}
export declare class Crosshair extends React.PureComponent<Props, State> {
    static defaultProps: {
        color: string;
        isActive: boolean;
        posX: number;
        posY: number;
        snapshots: never[];
        snapshotOpacity: number;
        showSnapshots: boolean;
        style: {};
        zoomLevel: number;
    };
    constructor(props: any);
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentWillReceiveProps(nextProps: any): void;
    getCenterCoords: () => ViewportCoordinates;
    setCenterCoords: () => void;
    handleOnKeyUp: (event: any) => void;
    setCoordinates: (event: any) => void;
    addSnapshot: () => void;
    stopCrosshair: () => void;
    getLineProps: () => {
        centerCoords: ViewportCoordinates;
        color: string;
        posX: number;
        posY: number;
        opacity: number;
        snapshotOpacity: number;
        zoomLevel: number;
    };
    renderSnapshots: () => JSX.Element[] | null;
    render(): JSX.Element;
}
export default Crosshair;
