import { Component, ReactElement } from 'react';
import './splitter.less';
export type SplitterProps = {
    horizontal?: boolean;
    isDisabled?: boolean;
    children: Array<ReactElement>;
    secondPaneSize: number;
    className?: string;
    usePercentSize?: boolean;
    onManualResize?: (value: null | number) => void;
};
type SplitterState = {
    secondPaneSize: number;
    resizing: boolean;
};
type PaneDetailsType = {
    [key: string]: number;
};
/**
 *
 * @midnight-gray-supported
 * @alpine-light-supported
 */
declare class Splitter extends Component<SplitterProps, SplitterState> {
    static defaultProps: {
        horizontal: boolean;
        isDisabled: boolean;
        children: never[];
        usePercentSize: boolean;
        onManualResize: () => void;
    };
    private containerRef?;
    private splitterRef?;
    constructor(props: SplitterProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: SplitterProps): void;
    setSecondPaneSize(): void | null;
    clearSelection(): void;
    getsecondPaneSize(containerRect: DOMRect, splitterRect: DOMRect | {
        width: number;
        height: number;
    }, clientPosition: PaneDetailsType, offsetMouse: boolean): number;
    onMouseMove(e: MouseEvent): void;
    onMouseDown(): void;
    onMouseUp(): void;
    getPanes(): import("react/jsx-runtime").JSX.Element[];
    getPaneSizeInPercentage(): number | null;
    render(): import("react/jsx-runtime").JSX.Element;
}
export default Splitter;
