import { PanelInitParameters } from '../panel/types';
import { IGridPanelComponentView } from './gridviewComponent';
import { BasePanelView, BasePanelViewExported, BasePanelViewState } from './basePanelView';
import { GridviewPanelApiImpl } from '../api/gridviewPanelApi';
import { LayoutPriority } from '../splitview/core/splitview';
import { Event } from '../events';
import { IViewSize } from './gridview';
import { GridviewApi } from '../api/component.api';
export interface GridviewInitParameters extends PanelInitParameters {
    minimumWidth?: number;
    maximumWidth?: number;
    minimumHeight?: number;
    maximumHeight?: number;
    priority?: LayoutPriority;
    snap?: boolean;
    containerApi: GridviewApi;
    isVisible?: boolean;
}
export interface IGridviewPanel extends BasePanelViewExported<GridviewPanelApiImpl> {
    readonly minimumWidth: number;
    readonly maximumWidth: number;
    readonly minimumHeight: number;
    readonly maximumHeight: number;
    readonly priority: LayoutPriority | undefined;
    readonly snap: boolean;
}
export declare abstract class GridviewPanel extends BasePanelView<GridviewPanelApiImpl> implements IGridPanelComponentView, IGridviewPanel {
    private _evaluatedMinimumWidth;
    private _evaluatedMaximumWidth;
    private _evaluatedMinimumHeight;
    private _evaluatedMaximumHeight;
    private _minimumWidth;
    private _minimumHeight;
    private _maximumWidth;
    private _maximumHeight;
    private _priority?;
    private _snap;
    private readonly _onDidChange;
    readonly onDidChange: Event<IViewSize | undefined>;
    get priority(): LayoutPriority | undefined;
    get snap(): boolean;
    get minimumWidth(): number;
    get minimumHeight(): number;
    get maximumHeight(): number;
    get maximumWidth(): number;
    get isActive(): boolean;
    constructor(id: string, component: string, api?: GridviewPanelApiImpl);
    setVisible(isVisible: boolean): void;
    setActive(isActive: boolean): void;
    init(parameters: GridviewInitParameters): void;
    private updateConstraints;
    toJSON(): GridPanelViewState;
    dispose(): void;
}
export interface GridPanelViewState extends BasePanelViewState {
    minimumHeight?: number;
    maximumHeight?: number;
    minimumWidth?: number;
    maximumWidth?: number;
    snap?: boolean;
    priority?: LayoutPriority;
}
