import type { PositionableOptions, ResizableStructure, _AgComponent, _AgCoreBeanCollection, _BaseEvents, _BaseProperties, _IPropertiesService } from 'ag-grid-community';
import { _AgComponentStub, _AgPositionableFeature } from 'ag-grid-community';
export interface AgPanelPostProcessPopupParams {
    type: string;
    eventSource?: HTMLElement | null;
    mouseEvent?: MouseEvent | Touch | null;
}
export interface AgPanelOptions<TBeanCollection, TProperties extends _BaseProperties, TGlobalEvents extends _BaseEvents, TPanelPostProcessPopupParams extends AgPanelPostProcessPopupParams = AgPanelPostProcessPopupParams> extends PositionableOptions {
    component?: _AgComponent<TBeanCollection, TProperties, TGlobalEvents, any>;
    hideTitleBar?: boolean | null;
    closable?: boolean | null;
    resizable?: boolean | ResizableStructure;
    title?: string | null;
    cssIdentifier?: string | null;
    postProcessPopupParams?: TPanelPostProcessPopupParams;
}
export declare class AgPanel<TBeanCollection extends _AgCoreBeanCollection<TProperties, TGlobalEvents, TCommon, TPropertiesService>, TProperties extends _BaseProperties, TGlobalEvents extends _BaseEvents, TCommon, TPropertiesService extends _IPropertiesService<TProperties, TCommon>, TComponentSelectorType extends string, TConfig extends AgPanelOptions<TBeanCollection, TProperties, TGlobalEvents, AgPanelPostProcessPopupParams> = AgPanelOptions<TBeanCollection, TProperties, TGlobalEvents, AgPanelPostProcessPopupParams>> extends _AgComponentStub<TBeanCollection, TProperties, TGlobalEvents, TCommon, TPropertiesService, TComponentSelectorType> {
    protected readonly config: TConfig;
    protected closable: boolean;
    protected closeButtonComp: _AgComponent<TBeanCollection, TProperties, TGlobalEvents, any> | undefined;
    protected positionableFeature: _AgPositionableFeature<TBeanCollection, TProperties, TGlobalEvents, TCommon, TPropertiesService>;
    close: () => void;
    protected readonly eContentWrapper: HTMLElement;
    protected readonly eTitleBar: HTMLElement;
    protected readonly eTitleBarButtons: HTMLElement;
    protected readonly eTitle: HTMLElement;
    constructor(config: TConfig);
    postConstruct(): void;
    protected renderComponent(): void;
    getHeight(): number | undefined;
    setHeight(height: number | string): void;
    getWidth(): number | undefined;
    setWidth(width: number | string): void;
    setClosable(closable: boolean): void;
    setBodyComponent(bodyComponent: _AgComponent<TBeanCollection, TProperties, TGlobalEvents, any>): void;
    addTitleBarButton(button: _AgComponent<TBeanCollection, TProperties, TGlobalEvents, any>, position?: number): void;
    getBodyHeight(): number;
    getBodyWidth(): number;
    setTitle(title: string): void;
    private onBtClose;
    destroy(): void;
}
