/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { EventEmitter, NgZone } from '@angular/core';
import { Orientation } from '../common/orientation';
import { SplitterPaneComponent } from './splitter-pane.component';
import { Direction } from '../common/direction';
import { SplitterBarComponent } from './splitter-bar.component';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export type SplitterParameters = {
    containerSize: () => number;
    panes: Array<SplitterPaneComponent>;
    orientation: Orientation;
    direction: Direction;
};
/**
 * @hidden
 */
export type SplitterDragState = {
    prev: {
        index: number;
        initialSize: number;
        min: number;
        max: number;
    };
    next: {
        index: number;
        initialSize: number;
        min: number;
        max: number;
    };
};
/**
 * @hidden
 */
export declare class SplitterService {
    private zone;
    panes: Array<SplitterPaneComponent>;
    splitterBars: Array<SplitterBarComponent>;
    layoutChange: EventEmitter<any>;
    resizeStep: number;
    fixedHeight: boolean;
    constructor(zone: NgZone);
    tryToggle(paneIndex: number): boolean;
    togglePane(keyCode: number, index: number): void;
    resizePane(keyCode: number, index: number): void;
    toggleContentOverlay(index: number, show: boolean): void;
    dragState(splitbarIndex: number): SplitterDragState;
    setSize(state: SplitterDragState, delta: number): void;
    isDraggable(splitBarIndex: number): boolean;
    isStatic(splitBarIndex: number): boolean;
    pane(index: number): SplitterPaneComponent;
    paneByIndex(pane: SplitterPaneComponent): number;
    getPaneSplitterBar(pane: SplitterPaneComponent): SplitterBarComponent | null;
    configure({ panes, orientation, containerSize, direction }: SplitterParameters): void;
    private containerSize;
    private rtl;
    private isPercent;
    private toPixels;
    private emit;
    static ɵfac: i0.ɵɵFactoryDeclaration<SplitterService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SplitterService>;
}
