import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, QueryList, Renderer2 } from '@angular/core';
import * as i0 from "@angular/core";
interface IArea {
    area: KbqSplitterAreaDirective;
    index: number;
    order: number;
    initialSize: number;
}
interface IPoint {
    x: number;
    y: number;
}
export declare enum Direction {
    Horizontal = "horizontal",
    Vertical = "vertical"
}
export declare class KbqGutterDirective implements OnInit {
    private elementRef;
    private renderer;
    get direction(): Direction;
    set direction(direction: Direction);
    private _direction;
    get order(): number;
    set order(order: number);
    private _order;
    get size(): number;
    set size(size: number);
    private _size;
    get isVertical(): boolean;
    dragged: boolean;
    constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2);
    ngOnInit(): void;
    getPosition(): IPoint;
    private setStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqGutterDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqGutterDirective, "kbq-gutter", never, { "direction": { "alias": "direction"; "required": false; }; "order": { "alias": "order"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, false, never>;
}
export declare class KbqGutterGhostDirective {
    private elementRef;
    private renderer;
    visible: boolean;
    get x(): number;
    set x(x: number);
    private _x;
    get y(): number;
    set y(y: number);
    private _y;
    get direction(): Direction;
    set direction(direction: Direction);
    private _direction;
    get size(): number;
    set size(size: number);
    private _size;
    get isVertical(): boolean;
    constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2);
    private updateDimensions;
    private setStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqGutterGhostDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqGutterGhostDirective, "kbq-gutter-ghost", never, { "visible": { "alias": "visible"; "required": false; }; "x": { "alias": "x"; "required": false; }; "y": { "alias": "y"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, false, never>;
}
export declare class KbqSplitterComponent implements OnInit, AfterContentInit, OnDestroy {
    elementRef: ElementRef<HTMLElement>;
    changeDetectorRef: ChangeDetectorRef;
    private ngZone;
    private renderer;
    readonly gutterPositionChange: EventEmitter<void>;
    areas: IArea[];
    gutters: QueryList<KbqGutterDirective>;
    ghost: KbqGutterGhostDirective;
    areaRefs: QueryList<KbqSplitterAreaDirective>;
    get isDragging(): boolean;
    private _isDragging;
    private readonly areaPositionDivider;
    private readonly listeners;
    private areasChangeSubscription;
    get hideGutters(): boolean;
    set hideGutters(value: boolean);
    private _hideGutters;
    get direction(): Direction;
    set direction(direction: Direction);
    private _direction;
    get disabled(): boolean;
    set disabled(disabled: boolean);
    private _disabled;
    get useGhost(): boolean;
    set useGhost(useGhost: boolean);
    private _useGhost;
    get gutterSize(): number;
    set gutterSize(gutterSize: number);
    private _gutterSize;
    get resizing(): boolean;
    private _resizing;
    constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone, renderer: Renderer2);
    addArea(area: KbqSplitterAreaDirective): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    onMouseDown(event: MouseEvent, leftAreaIndex: number, rightAreaIndex: number): void;
    removeArea(area: KbqSplitterAreaDirective): void;
    isVertical(): boolean;
    private mapAndOrderArea;
    private updateGutter;
    private onMouseMove;
    private resizeAreas;
    private onMouseUp;
    private setStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqSplitterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqSplitterComponent, "kbq-splitter", ["kbqSplitter"], { "hideGutters": { "alias": "hideGutters"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "useGhost": { "alias": "useGhost"; "required": false; }; "gutterSize": { "alias": "gutterSize"; "required": false; }; }, { "gutterPositionChange": "gutterPositionChange"; }, ["areaRefs"], ["*"], false, never>;
}
export declare class KbqSplitterAreaDirective implements AfterViewInit, OnDestroy {
    private elementRef;
    private renderer;
    private splitter;
    readonly sizeChange: EventEmitter<number>;
    private readonly window;
    constructor(elementRef: ElementRef<HTMLElement>, renderer: Renderer2, splitter: KbqSplitterComponent);
    isResizing(): boolean;
    disableFlex(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    setOrder(order: number): void;
    setSize(size: number): void;
    getSize(): number;
    getPosition(): IPoint;
    getMinSize(): number;
    private isVertical;
    private getMinSizeProperty;
    private getOffsetSizeProperty;
    private getSizeProperty;
    private setStyle;
    private removeStyle;
    private emitSizeChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqSplitterAreaDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSplitterAreaDirective, "[kbq-splitter-area]", never, {}, { "sizeChange": "sizeChange"; }, never, never, false, never>;
}
export {};
