/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { OnDestroy } from '@angular/core';
import { FocusableElement } from "./focusable-element.interface";
import { FocusRoot } from './focus-root';
import * as i0 from "@angular/core";
/**
 * Represents group of components that can be activated or focused.
 *
 * A focus group may contain focusable elements, such as rows, cells and input elements.
 *
 * Elements are added to the focus group by tagging them with the `kendoTreeListFocusable` directive.
 * See [Controlling the Focus](https://www.telerik.com/kendo-angular-ui/components/treelist/keyboard-navigation#controlling-the-focus).
 *
 * @hidden
 */
export declare class FocusGroup implements OnDestroy {
    private root;
    private active;
    private children;
    private get focusableChildren();
    get isActive(): boolean;
    /**
     * @hidden
     */
    constructor(root: FocusRoot);
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    registerElement(element: FocusableElement): void;
    /**
     * @hidden
     */
    unregisterElement(element: FocusableElement): void;
    /**
     * Returns a boolean value which indicates if the group will receive focus when the cell is focused.
     * Evaluates to `true` when the focus group has a single focusable element such as a button or a checkbox.
     *
     * @returns A boolean value which indicates if the group will receive focus when the cell is focused.
     */
    isNavigable(): boolean;
    /**
     * Returns a boolean value which indicates if the focus group contains focusable component.
     *
     * @returns A boolean value which indicates if the focus group contains focusable component.
     */
    canFocus(): boolean;
    /**
     * Focuses the first focusable component, if any.
     */
    focus(): void;
    /**
     * @hidden
     */
    activate(): void;
    /**
     * @hidden
     */
    deactivate(): void;
    private hasFocus;
    private toggleState;
    static ɵfac: i0.ɵɵFactoryDeclaration<FocusGroup, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FocusGroup>;
}
