import Component from '@glimmer/component';
import type Owner from '@ember/owner';
import type { ModifierLike } from '@glint/template';
import type { HdsCompositeOrientations } from './types.ts';
interface HdsCompositeCompositeModifierSignature {
    Element: HTMLElement;
}
interface HdsCompositeItemModifierSignature {
    Element: HTMLElement;
    Args: {
        Named: {
            disabled?: boolean;
        };
    };
}
interface HdsCompositeGroupModifierSignature {
    Element: HTMLElement;
}
export interface HdsCompositeSignature {
    Args: {
        orientation?: HdsCompositeOrientations;
        loop?: boolean | HdsCompositeOrientations;
        wrap?: boolean | HdsCompositeOrientations;
        defaultCurrentId?: string | null;
    };
    Blocks: {
        default: [
            {
                composite: ModifierLike<HdsCompositeCompositeModifierSignature>;
                item: ModifierLike<HdsCompositeItemModifierSignature>;
                group: ModifierLike<HdsCompositeGroupModifierSignature>;
            }
        ];
    };
}
export default class Composite extends Component<HdsCompositeSignature> {
    private _items;
    private _groups;
    private _currentId;
    private _compositeElement;
    private _preserveTabIndex;
    constructor(owner: Owner, args: HdsCompositeSignature['Args']);
    private get _resolvedCurrentId();
    private get _currentItem();
    private get _firstEnabledItem();
    private get _currentIndex();
    private get _config();
    private get _navigationSnapshot();
    private _registerItem;
    private _unregisterItem;
    private _registerGroup;
    private _unregisterGroup;
    private _reassociateGroups;
    private _moveTo;
    private _syncAllElements;
    private _syncItemElement;
    private _syncCompositeElement;
    compositeModifier: import("ember-modifier").FunctionBasedModifier<{
        Element: HTMLElement;
        Args: {
            Named: import("ember-modifier/-private/signature").EmptyObject;
            Positional: [];
        };
    }>;
    itemModifier: import("ember-modifier").FunctionBasedModifier<{
        Element: HTMLElement;
        Args: {
            Named: {
                disabled?: boolean;
            };
            Positional: [];
        };
    }>;
    groupModifier: import("ember-modifier").FunctionBasedModifier<{
        Element: HTMLElement;
        Args: {
            Named: import("ember-modifier/-private/signature").EmptyObject;
            Positional: [];
        };
    }>;
}
export {};
