import { default as React } from 'react';
import { default as PropTypes } from 'prop-types';
export class PatchPanel extends React.Component<any, any, any> {
    constructor(props: any);
    state: {
        hover: boolean;
    };
    handleSelectionChange(e: any, value: any): void;
    renderPanelLabel(yStart: any, label: any, key: any): import("react/jsx-runtime").JSX.Element;
    renderFrontBackLabel(yStart: any, key: any): import("react/jsx-runtime").JSX.Element;
    renderPanels(panelMap: any): any[];
    renderModule(module: any, moduleY: any): any[];
    /**
     * draws 0, 2, or 4 endpoints - determined by presence of Front, Back and Coupler
     */
    renderEndpoints(circuitGroup: any, y: any, key: any): import("react/jsx-runtime").JSX.Element[];
    renderConnections(circuitGroup: any, y: any, key: any): import("react/jsx-runtime").JSX.Element[];
    render(): import("react/jsx-runtime").JSX.Element;
}
export namespace PatchPanel {
    namespace propTypes {
        let margin: PropTypes.Requireable<number>;
        let labelPosition: PropTypes.Requireable<string>;
        let width: PropTypes.Requireable<number>;
        let panels: PropTypes.Validator<any[]>;
        let panelStyle: PropTypes.Requireable<object>;
        let couplerStyle: PropTypes.Requireable<object>;
        let yOffset: PropTypes.Requireable<number>;
        let moduleSpacing: PropTypes.Requireable<number>;
        let panelSpacing: PropTypes.Requireable<number>;
        let couplerSpacing: PropTypes.Requireable<number>;
        let panelWidth: PropTypes.Requireable<number>;
        let onSelectionChange: PropTypes.Requireable<(...args: any[]) => any>;
        let endpointLabelOffset: PropTypes.Requireable<number>;
        let roundedX: PropTypes.Requireable<number>;
        let roundedY: PropTypes.Requireable<number>;
        let couplerEndpointRadius: PropTypes.Requireable<number>;
        let endpointRoundedX: PropTypes.Requireable<number>;
        let endpointRoundedY: PropTypes.Requireable<number>;
        let couplerLabelPosition: PropTypes.Requireable<string>;
        let panelRoundedX: PropTypes.Requireable<number>;
        let panelRoundedY: PropTypes.Requireable<number>;
        let labelOffsetX: PropTypes.Requireable<number>;
        let labelOffsetY: PropTypes.Requireable<number>;
    }
    namespace defaultProps {
        let width_1: number;
        export { width_1 as width };
        let yOffset_1: number;
        export { yOffset_1 as yOffset };
        let margin_1: number;
        export { margin_1 as margin };
        let roundedX_1: number;
        export { roundedX_1 as roundedX };
        let roundedY_1: number;
        export { roundedY_1 as roundedY };
        let couplerEndpointRadius_1: number;
        export { couplerEndpointRadius_1 as couplerEndpointRadius };
        let endpointRoundedX_1: number;
        export { endpointRoundedX_1 as endpointRoundedX };
        let endpointRoundedY_1: number;
        export { endpointRoundedY_1 as endpointRoundedY };
        let couplerLabelPosition_1: string;
        export { couplerLabelPosition_1 as couplerLabelPosition };
        let labelPosition_1: string;
        export { labelPosition_1 as labelPosition };
        let panelRoundedX_1: number;
        export { panelRoundedX_1 as panelRoundedX };
        let panelRoundedY_1: number;
        export { panelRoundedY_1 as panelRoundedY };
        let labelOffsetX_1: number;
        export { labelOffsetX_1 as labelOffsetX };
        let labelOffsetY_1: number;
        export { labelOffsetY_1 as labelOffsetY };
    }
}
