import { default as React } from 'react';
import { default as PropTypes } from 'prop-types';
/**
 * The `x1`, `x2`, `y1`, and `y2` properties determine the position of the endpoints on the `<svg>` element.
 * A path is then drawn betwween the endpoints. If the lineShape property is set to "square",
 * the width of the square will be the distance between x1 and x2, with the height of the square
 * determined by the size prop.
 *
 * The `labelPosition`, determines where the label will be positioned around the line. The `xOffset` and
 * `yOffset` properties allow you to customize the distance the label is from the `x` and `y` properties.
 *
 * The `label` property is the name that will be displayed on the line. If you want to display multiple
 * lines, the label can take an array of strings, with each array element displayed on a separate line.
 */
export class Connection extends React.Component<any, any, any> {
    constructor(props: any);
    state: {
        highlighted: boolean;
    };
    /**
     * Use stops hovering over circuit
     */
    handleMouseOut(): void;
    /**
     * User hovers over the circuit
     */
    handleMouseOver(): void;
    handleSelectionChanged(e: any, value: any): void;
    renderEndpoints(): import("react/jsx-runtime").JSX.Element;
    render(): import("react/jsx-runtime").JSX.Element;
}
export namespace Connection {
    namespace propTypes {
        let lineShape: PropTypes.Requireable<string>;
        let x1: PropTypes.Requireable<number>;
        let x2: PropTypes.Requireable<number>;
        let y1: PropTypes.Requireable<number>;
        let y2: PropTypes.Requireable<number>;
        let label: PropTypes.Requireable<NonNullable<string | (string | null | undefined)[] | null | undefined>>;
        let labelPosition: PropTypes.Requireable<string>;
        let labelOffsetX: PropTypes.Requireable<number>;
        let labelOffsetY: PropTypes.Requireable<number>;
        let textAnchor: PropTypes.Requireable<string>;
        let style: PropTypes.Requireable<object>;
        let muted: PropTypes.Requireable<boolean>;
        let selected: PropTypes.Requireable<boolean>;
        let roundedX: PropTypes.Requireable<number>;
        let roundedY: PropTypes.Requireable<number>;
        let size: PropTypes.Requireable<number>;
        let centerLine: PropTypes.Requireable<boolean>;
        let position: PropTypes.Requireable<number>;
        let curveOffset: PropTypes.Requireable<number>;
        let bendOffset: PropTypes.Requireable<number>;
        let curveDirection: PropTypes.Requireable<string>;
        let radius: PropTypes.Requireable<number>;
        let endpointShape: PropTypes.Requireable<string>;
        let endPointRoundedX: PropTypes.Requireable<number>;
        let endPointRoundedY: PropTypes.Requireable<number>;
        let arrow: PropTypes.Requireable<boolean>;
        let arrowWidth: PropTypes.Requireable<number>;
        let arrowHeight: PropTypes.Requireable<number>;
        let noNavigate: PropTypes.Requireable<boolean>;
        let onSelectionChange: PropTypes.Requireable<(...args: any[]) => any>;
        let navTo: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
    }
    namespace defaultProps {
        let noNavigate_1: boolean;
        export { noNavigate_1 as noNavigate };
        let labelPosition_1: string;
        export { labelPosition_1 as labelPosition };
        let radius_1: number;
        export { radius_1 as radius };
        let endpointShape_1: string;
        export { endpointShape_1 as endpointShape };
        export let classed: string;
        let lineShape_1: string;
        export { lineShape_1 as lineShape };
        let selected_1: boolean;
        export { selected_1 as selected };
        let muted_1: boolean;
        export { muted_1 as muted };
        let position_1: number;
        export { position_1 as position };
        let arrow_1: boolean;
        export { arrow_1 as arrow };
        let arrowWidth_1: number;
        export { arrowWidth_1 as arrowWidth };
        let arrowHeight_1: number;
        export { arrowHeight_1 as arrowHeight };
        let curveDirection_1: string;
        export { curveDirection_1 as curveDirection };
        let curveOffset_1: number;
        export { curveOffset_1 as curveOffset };
        let size_1: number;
        export { size_1 as size };
    }
}
