import * as React from 'react';
import { IContentRenderer, GroupPanelContentPartInitParameters } from '../../groupview/types';
import { ReactPortalStore } from '../react';
import { IDockviewPanelProps } from '../dockview/dockview';
import { PanelUpdateEvent } from '../../panel/types';
import { DockviewPanelApi } from '../../api/groupPanelApi';
import { DockviewApi } from '../../api/component.api';
import { GroupviewPanel } from '../../groupview/groupviewPanel';
import { Event } from '../../events';
import { WrappedTab } from '../../dockview/components/tab/defaultTab';
export interface IGroupPanelActionbarProps {
    api: DockviewPanelApi;
    containerApi: DockviewApi;
}
export interface ReactContentPartContext {
    api: DockviewPanelApi;
    containerApi: DockviewApi;
    actionsPortalElement: HTMLElement;
    tabPortalElement: WrappedTab;
}
export declare class ReactPanelContentPart implements IContentRenderer {
    readonly id: string;
    private readonly component;
    private readonly reactPortalStore;
    private _element;
    private part?;
    private _actionsElement;
    private actionsPart?;
    private _group;
    private readonly _onDidFocus;
    readonly onDidFocus: Event<void>;
    private readonly _onDidBlur;
    readonly onDidBlur: Event<void>;
    get element(): HTMLElement;
    get actions(): HTMLElement;
    constructor(id: string, component: React.FunctionComponent<IDockviewPanelProps>, reactPortalStore: ReactPortalStore);
    focus(): void;
    init(parameters: GroupPanelContentPartInitParameters): void;
    toJSON(): {
        id: string;
    };
    update(event: PanelUpdateEvent): void;
    updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
    layout(width: number, height: number): void;
    close(): Promise<boolean>;
    dispose(): void;
}
