/// <reference types="jquery" />
import { InitModelOf, LayoutData, SplitterEventMap, SplitterModel, Widget } from '../index';
export declare class Splitter extends Widget implements SplitterModel {
    model: SplitterModel;
    eventMap: SplitterEventMap;
    self: Splitter;
    splitHorizontal: boolean;
    position: number;
    orientation: 'top' | 'right' | 'bottom' | 'left';
    layoutData: LayoutData;
    $anchor: JQuery;
    $root: JQuery;
    /** distance from cursor to splitter, makes resizing smoother by preventing initial 'jump' */
    protected _cursorOffset: {
        left: number;
        top: number;
    };
    protected _mouseDownHandler: (event: JQuery.MouseDownEvent) => void;
    protected _$window: JQuery<Window>;
    protected _$body: JQuery<Body>;
    constructor();
    protected _init(model: InitModelOf<this>): void;
    protected _render(): void;
    protected _renderProperties(): void;
    protected _renderEnabled(): void;
    protected _renderVisible(): void;
    setLayoutData(layoutData: LayoutData): void;
    getLayoutData(): LayoutData;
    /**
     * Sets the splitter position to the specified newSize (in pixels).
     * If the newSize is not specified, the size is calculated automatically by reading the this.$anchor element's bounds.
     *
     * @returns the effective position in pixel.
     */
    setPosition(position?: number): number;
    /**
     * Derives the position from $anchor element's bounds
     */
    protected _derivePositionFromAnchor(): number;
    protected _setPosition(position: number): void;
    protected _renderPosition(): void;
    protected _onMouseDown(event: JQuery.MouseDownEvent): void;
    protected _getSplitterPosition(event: JQuery.MouseEventBase): number;
    protected _onMouseMove(event: JQuery.MouseMoveEvent<Window>): void;
    protected _onMouseUp(event: JQuery.MouseUpEvent<Window>): void;
}
//# sourceMappingURL=Splitter.d.ts.map