import * as React from 'react';
import { PanelParentSync } from './Panels';
import { Config_PanelParent, Props_OrientedWorkspace, Props_WorkspaceParentPanel, State_WorkspaceParentPanel } from './types';
type State = {
    factors: number[];
    panelRefs: React.RefObject<HTMLDivElement>[];
};
export declare class TS_OrientedWorkspace extends PanelParentSync<{}, State, Props_OrientedWorkspace> {
    private dragStart;
    private firstPanelBounds;
    private secondPanelBounds;
    private ref?;
    protected deriveStateFromProps(nextProps: Props_WorkspaceParentPanel<Config_PanelParent, Props_OrientedWorkspace>): State_WorkspaceParentPanel<{}, State>;
    private calcFactors;
    separatorOnDrag: (e: React.DragEvent<HTMLDivElement>, firstPanelIndex: number, secondPanelIndex: number) => void;
    onDragStart: (e: React.DragEvent<HTMLDivElement>) => void;
    onDragEnd: (e: React.DragEvent<HTMLDivElement>, firstPanelIndex: number, secondPanelIndex: number) => void;
    implementFactors: (factors: {
        index: number;
        factor: number;
    }[]) => void;
    render(): React.JSX.Element;
}
export declare class TS_HorizontalWorkspace extends TS_OrientedWorkspace {
    static defaultProps: {
        firstEdge: string;
        secondEdge: string;
        orientation: string;
        dimensionProp: string;
        dimensionClientProp: string;
        mousePos: string;
    };
}
export declare class TS_VerticalWorkspace extends TS_OrientedWorkspace {
    static defaultProps: {
        firstEdge: string;
        secondEdge: string;
        orientation: string;
        dimensionProp: string;
        dimensionClientProp: string;
        mousePos: string;
    };
}
export {};
