import { BooleanInput } from '@angular/cdk/coercion';
import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, Renderer2, SimpleChanges } from '@angular/core';
import { IAreaData } from './area-data.model';
import { SplitAreaDirective } from './split-area.directive';
import * as i0 from "@angular/core";
/**
 * Splitter Component for Angular
 *
 * The splitter component allows to split horizontally or vertically, a container in N resizable part.
 */
export declare class DejaSplitterComponent implements OnChanges, OnDestroy {
    private cdRef;
    private elementRef;
    private renderer;
    /**
     * Direction of the split
     * Can be `horizontal` or `vertical`
     */
    direction: string;
    /**
     * Width in percent of the component
     * By default `100%`
     */
    width: number;
    /**
     * Height in percent of the component
     * By default `100%`
     */
    height: number;
    /**
     * Separator width
     */
    gutterSize: number;
    /**
     * Event triggered when the user start to drag the cursor
     */
    readonly dragStart: EventEmitter<number[]>;
    /**
     * Event triggered during the cursor's drag
     */
    readonly dragProgress: EventEmitter<number[]>;
    /**
     * Event triggered when the user stop to drag the cursor
     */
    readonly dragEnd: EventEmitter<number[]>;
    /**
     * Host Binding
     */
    get styleFlexDirection(): string;
    /**
     * Host Binding
     */
    get styleWidth(): string;
    /**
     * Host Binding
     */
    get styleHeight(): string;
    private get nbGutters();
    private _areas;
    private isDragging;
    private containerSize;
    private areaAsize;
    private areaBsize;
    private eventsDragFct;
    private _disabled;
    /** Retourne ou definit si le selecteur est desactivé. */
    set disabled(value: BooleanInput);
    get disabled(): BooleanInput;
    get areas(): IAreaData[];
    /**
     * Constructor
     */
    constructor(cdRef: ChangeDetectorRef, elementRef: ElementRef<HTMLElement>, renderer: Renderer2);
    /**
     * Lifecycle hook that is called when any data-bound property of a directive changes.
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Lifecycle hook that is called when a directive, pipe or service is destroyed.
     */
    ngOnDestroy(): void;
    /**
     * Add a new area into the component
     * @param component Area to add
     * @param orderUser Position of the new area into the component
     * @param sizeUser Size of the new area
     * @param minPixel Min size of the new area
     */
    addArea(component: SplitAreaDirective, orderUser: number | null, sizeUser: number | null, minPixel: number): void;
    /**
     * Update an existing area into the component
     * @param component Area to update
     * @param orderUser Position of the area into the component
     * @param sizeUser Size of the area
     * @param minPixel  Min size of the area
     */
    updateArea(component: SplitAreaDirective, orderUser: number | null, sizeUser: number | null, minPixel: number): void;
    /**
     * Delete an existing area into the component
     * @param area Area to delete
     */
    removeArea(area: SplitAreaDirective): void;
    /**
     * Function called when the user start to drag the cursor
     * @param startEvent drag event
     * @param gutterOrder separator number
     */
    startDragging(event: Event, gutterOrder: number): void;
    refresh(): void;
    private refreshStyleSizes;
    private dragEvent;
    private drag;
    private stopDragging;
    private notify;
    static ɵfac: i0.ɵɵFactoryDeclaration<DejaSplitterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DejaSplitterComponent, "deja-splitter", never, { "direction": "direction"; "width": "width"; "height": "height"; "gutterSize": "gutterSize"; "disabled": "disabled"; }, { "dragStart": "dragStart"; "dragProgress": "dragProgress"; "dragEnd": "dragEnd"; }, never, ["*"]>;
}
