import { Widget } from '../widgets/Widget.js';
import { UntargetableTricklingEvent } from './UntargetableTricklingEvent.js';
/**
 * A tab selection {@link TricklingEvent}. Dispatched when tab is pressed and
 * either the keyboard-focused widget doesn't capture the event, or when
 * manually dispatched.
 *
 * For internal use only. Do not use this event unless you know what you're
 * doing.
 *
 * @category Event
 */
export declare class TabSelectEvent extends UntargetableTricklingEvent {
    static readonly type = "tab-select";
    readonly type: typeof TabSelectEvent.type;
    readonly focusType: null;
    readonly needsFocus: false;
    readonly userCapturable: true;
    /** The widget that the tab selected will be done relative to. */
    readonly relativeTo: Widget | null;
    /**
     * A working value; has the widget that this event is relative to been
     * reached?
     *
     * If false, then the {@link Root} should be searched until
     * {@link TabSelectEvent#relativeTo} is reached, then, set this to true. If
     * true, then the next visited widget that has a {@link Widget#tabFocusable}
     * value of true will be focused.
     *
     * Note that if {@link TabSelectEvent#relativeTo} is null, then this will be
     * true by default.
     */
    reachedRelative: boolean;
    constructor(relativeTo: Widget | null, reversed: boolean);
    cloneWithTarget(target: Widget | null): TabSelectEvent;
}
