import { IHoverService } from "../../../../platform/hover/browser/hover.service.js";
import { IContextMenuService } from "../../../../platform/contextview/browser/contextView.service.js";
import { IInstantiationService } from "../../../../platform/instantiation/common/instantiation.js";
import { Disposable, IDisposable } from "../../../../base/common/lifecycle.js";
import { IKeybindingService } from "../../../../platform/keybinding/common/keybinding.service.js";
import { IAccessibilityService } from "../../../../platform/accessibility/common/accessibility.service.js";
import { ILayoutService } from "../../../../platform/layout/browser/layoutService.service.js";
import type { IHoverLifecycleOptions, IHoverOptions, IHoverWidget, IManagedHover, IManagedHoverContentOrFactory, IManagedHoverOptions } from "../../../../base/browser/ui/hover/hover.js";
import type { IHoverDelegate } from "../../../../base/browser/ui/hover/hoverDelegate.js";
import { IConfigurationService } from "../../../../platform/configuration/common/configuration.service.js";
export declare class HoverService extends Disposable implements IHoverService {
    private readonly _instantiationService;
    private readonly _configurationService;
    private readonly _keybindingService;
    private readonly _layoutService;
    private readonly _accessibilityService;
    readonly _serviceBrand: undefined;
    private _contextViewHandler;
    private _currentHoverOptions;
    private _currentHover;
    private _currentDelayedHover;
    private _currentDelayedHoverWasShown;
    private _currentDelayedHoverGroupId;
    private _lastHoverOptions;
    private _lastFocusedElementBeforeOpen;
    private readonly _delayedHovers;
    private readonly _managedHovers;
    constructor(_instantiationService: IInstantiationService, _configurationService: IConfigurationService, contextMenuService: IContextMenuService, _keybindingService: IKeybindingService, _layoutService: ILayoutService, _accessibilityService: IAccessibilityService);
    showInstantHover(options: IHoverOptions, focus?: boolean, skipLastFocusedUpdate?: boolean, dontShow?: boolean): IHoverWidget | undefined;
    showDelayedHover(options: IHoverOptions, lifecycleOptions: Pick<IHoverLifecycleOptions, "groupId">): IHoverWidget | undefined;
    setupDelayedHover(target: HTMLElement, options: (() => Omit<IHoverOptions, "target">) | Omit<IHoverOptions, "target">, lifecycleOptions?: IHoverLifecycleOptions): IDisposable;
    setupDelayedHoverAtMouse(target: HTMLElement, options: (() => Omit<IHoverOptions, "target" | "position">) | Omit<IHoverOptions, "target" | "position">, lifecycleOptions?: IHoverLifecycleOptions): IDisposable;
    private _setupDelayedHover;
    private _createHover;
    private _showHover;
    hideHover(force?: boolean): void;
    private doHideHover;
    private _intersectionChange;
    showAndFocusLastHover(): void;
    private _showAndFocusHoverForActiveElement;
    private _keyDown;
    private _keyUp;
    setupManagedHover(hoverDelegate: IHoverDelegate, targetElement: HTMLElement, content: IManagedHoverContentOrFactory, options?: IManagedHoverOptions | undefined): IManagedHover;
    showManagedHover(target: HTMLElement): void;
    dispose(): void;
}
