import { AfterContentInit, OnChanges, OnDestroy, QueryList, SimpleChanges, ViewContainerRef, EventEmitter, TemplateRef } from '@angular/core';
import { Subject } from 'rxjs';
export declare type SplitDirection = 'horizontal' | 'vertical';
export declare type GutterAlignment = 'start' | 'end' | 'center';
export interface DragEvent {
    readonly source: SplitViewComponent;
    readonly sizes: ReadonlyArray<number>;
}
export declare class SplitPaneDirective implements OnChanges {
    readonly viewContainerRef: ViewContainerRef;
    splitRatio: number;
    minSize: number;
    sizeChanges: Subject<void>;
    minSizeChanges: Subject<void>;
    constructor(viewContainerRef: ViewContainerRef);
    ngOnChanges(changes: SimpleChanges): void;
}
export declare class SplitViewGutterDirective {
    readonly template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
}
export declare class SplitViewComponent implements OnChanges, OnDestroy, AfterContentInit {
    private readonly viewContainerRef;
    dragging: EventEmitter<DragEvent>;
    dragStart: EventEmitter<DragEvent>;
    dragEnd: EventEmitter<DragEvent>;
    expandToMin: boolean;
    gutterSize: number;
    gutterAlign: GutterAlignment;
    snapOffset: number;
    dragInterval: number;
    direction: SplitDirection;
    splitPanes: QueryList<SplitPaneDirective>;
    gutterDef: SplitViewGutterDirective;
    private split;
    private subscriptions;
    constructor(viewContainerRef: ViewContainerRef);
    get isHorizontal(): boolean;
    get isVertical(): boolean;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    private refresh;
    private destroySplit;
    private getSizes;
}
