/**-----------------------------------------------------------------------------------------
* Copyright © 2024 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { AfterViewInit, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
import { FocusGroup } from './focus-group';
import { FocusableElement } from './focusable-element.interface';
import * as i0 from "@angular/core";
/**
 * A directive that controls the way focusable cell elements receive
 * [focus in a navigable TreeList]({% slug keyboard_navigation_treelist %}).
 *
 * The directive takes as input the `cellContext` from the cell template.
 *
 * ```html
 * 
 *   
 *     
 *   
 * 
 * ```
 */
export declare class FocusableDirective implements AfterViewInit, FocusableElement, OnInit, OnDestroy {
    private hostElement;
    private renderer;
    private group;
    /**
     * The cell context provided by the template.
     */
    cellContext: any;
    /**
     * @hidden
     */
    set enabled(value: boolean);
    get enabled(): boolean;
    /**
     * @hidden
     */
    set addCellContext(value: any);
    /**
     * @hidden
     */
    set editCellContext(value: any);
    /**
     * @hidden
     */
    set removeCellContext(value: any);
    /**
     * @hidden
     */
    set saveCellContext(value: any);
    /**
     * @hidden
     */
    set cancelCellContext(value: any);
    private active;
    private _enabled;
    private element;
    constructor(hostElement: ElementRef, renderer: Renderer2, group: FocusGroup);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * @hidden
     */
    toggle(active: boolean): void;
    /**
     * @hidden
     */
    canFocus(): boolean;
    /**
     * @hidden
     */
    isNavigable(): boolean;
    /**
     * @hidden
     */
    focus(): void;
    /**
     * @hidden
     */
    hasFocus(): boolean;
    /**
     * @hidden
     */
    registerElement(element: FocusableElement): void;
    static ɵfac: i0.ɵɵFactoryDeclaration;
    static ɵdir: i0.ɵɵDirectiveDeclaration;
}