import { Emitter, Event } from '../events';
import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi';
import { IGroupPanel } from '../groupview/groupPanel';
import { GroupviewPanel } from '../groupview/groupviewPanel';
export interface TitleEvent {
    readonly title: string;
}
export interface SuppressClosableEvent {
    readonly suppressClosable: boolean;
}
export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' | 'visible'> {
    readonly group: GroupviewPanel | undefined;
    readonly isGroupActive: boolean;
    readonly title: string;
    readonly suppressClosable: boolean;
    readonly onDidDirtyChange: Event<boolean>;
    close: () => Promise<boolean>;
    interceptOnCloseAction(interceptor: () => Promise<boolean>): void;
    setTitle(title: string): void;
}
export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implements DockviewPanelApi {
    private panel;
    private _group;
    private _interceptor;
    readonly _onDidDirtyChange: Emitter<boolean>;
    readonly onDidDirtyChange: Event<boolean>;
    readonly _onDidTitleChange: Emitter<TitleEvent>;
    readonly onDidTitleChange: Event<TitleEvent>;
    readonly _titleChanged: Emitter<TitleEvent>;
    readonly titleChanged: Event<TitleEvent>;
    readonly _suppressClosableChanged: Emitter<SuppressClosableEvent>;
    readonly suppressClosableChanged: Event<SuppressClosableEvent>;
    get tryClose(): undefined | (() => Promise<boolean>);
    get title(): string;
    get suppressClosable(): boolean;
    get isGroupActive(): boolean;
    set group(value: GroupviewPanel | undefined);
    get group(): GroupviewPanel | undefined;
    constructor(panel: IGroupPanel, group: GroupviewPanel | undefined);
    setTitle(title: string): void;
    close(): Promise<boolean>;
    interceptOnCloseAction(interceptor: () => Promise<boolean>): void;
    dispose(): void;
}
