import React from 'react';
type SplitterLayoutProps = React.PropsWithChildren<{
    customClassName: string;
    vertical: boolean;
    percentage: boolean;
    primaryIndex: number;
    primaryMinSize: number;
    secondaryMinSize: number;
    secondaryDefaultSize: number | null;
    secondaryInitialSize: number | null;
    onSizeChanged: ((secondarySize: number) => void) | null;
    onDragStart: ((prev: number) => void) | null;
    onDragEnd: ((prev: number, current: number) => void) | null;
}>;
type SplitterLayoutState = {
    lastMouseDown: number;
    secondaryPaneSize: number;
    resizing: boolean;
    size?: number;
};
export declare class SplitterLayout extends React.Component<SplitterLayoutProps, SplitterLayoutState> {
    static defaultProps: SplitterLayoutProps;
    private container;
    private splitter;
    constructor(props: SplitterLayoutProps);
    componentDidMount(): void;
    componentDidUpdate(_prevProps: SplitterLayoutProps, prevState: SplitterLayoutState): void;
    componentWillUnmount(): void;
    private clearSelection;
    private getSecondaryPaneSize;
    /**
     * Set the size of the secondary pane.
     */
    setSecondaryPaneSize(secondaryPaneSize: number): void;
    /**
     * Maximize the secondary pane.
     *
     * Only works if `percentage` is set to `true`.
     */
    maximizeSecondaryPane(): void;
    /**
     * Check if the layout is in the default state, i.e. the secondary pane is at its default size.
     */
    isReset(): boolean;
    /**
     * Reset the layout to the default state, i.e. set the secondary pane to its default size.
     *
     * If `secondaryDefaultSize` is not set, the secondary pane will be set to its `secondaryMinSize`.
     *
     * If `secondaryMinSize` is not set, the secondary pane will be set to 0.
     */
    reset(): void;
    private handleResize;
    private handleMouseMove;
    private handleTouchMove;
    private handleSplitterMouseDown;
    private handleSplitterDoubleClick;
    private handleMouseUp;
    render(): JSX.Element;
}
export {};
