/********************************************************************************
 * Copyright (c) 2021-2024 EclipseSource and others.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the Eclipse
 * Public License v. 2.0 are satisfied: GNU General Public License, version 2
 * with the GNU Classpath Exception which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 ********************************************************************************/
import { Action, Disposable, Emitter, Event, IActionHandler, ICommand, ViewerOptions } from '@eclipse-glsp/sprotty';
export interface FocusChange {
    hasFocus: boolean;
    focusElement: HTMLOrSVGElement | null;
    diagramElement: HTMLElement | null;
}
/**
 * Tracks the focus state of the diagram by handling {@link FocusStateChangedAction}s.
 * Emits a {@link FocusChange} event when the focus state changes.
 * Allows querying of the current focus state and the focused root diagram element and the currently focused element within the diagram.
 */
export declare class FocusTracker implements IActionHandler, Disposable {
    protected inActiveCssClass: string;
    protected _hasFocus: boolean;
    protected _focusElement: HTMLOrSVGElement | null;
    protected _diagramElement: HTMLElement | null;
    protected options: ViewerOptions;
    protected onFocusChangedEmitter: Emitter<FocusChange>;
    /**
     * Event that is fired when the focus state of the diagram changes i.e. after a {@link FocusStateChangedAction} has been handled.
     */
    get onFocusChanged(): Event<FocusChange>;
    get hasFocus(): boolean;
    get focusElement(): HTMLOrSVGElement | null;
    get diagramElement(): HTMLElement | null;
    handle(action: Action): void | Action | ICommand;
    dispose(): void;
}
//# sourceMappingURL=focus-tracker.d.ts.map