import { GetStylesApi } from '../../core';
import type { FloatingPosition } from '../../utils/Floating';
import type { MenubarFactory } from './Menubar';
export interface MenubarContextValue {
    getStyles: GetStylesApi<MenubarFactory>;
    /** Unique id of the menubar instance, used to scope dropdown lookups across multiple menubars */
    id: string;
    /** Index of the currently opened menu, `null` when all menus are closed */
    openIndex: number | null;
    /** Opens the menu at the given index, `null` closes all menus */
    setOpenIndex: (index: number | null) => void;
    /** Opens the menu at the given index and records whether it was opened by click or hover */
    openMenu: (index: number, source: 'click' | 'hover') => void;
    /** Closes all menus */
    closeMenu: () => void;
    /** Schedules a delayed close, used by hover trigger when the pointer leaves the bar */
    scheduleClose: () => void;
    /** Cancels a pending delayed close */
    cancelClose: () => void;
    /** Returns how the currently opened menu was opened */
    getOpenSource: () => 'click' | 'hover' | null;
    /** Returns the previously opened menu index, used to skip transitions when switching menus */
    getPreviousOpenIndex: () => number | null;
    /** Index of the menu that currently holds the single menubar tab stop */
    activeIndex: number;
    /** Sets the roving tabindex to the given menu index */
    setActiveIndex: (index: number) => void;
    trigger: 'click' | 'hover';
    loop: boolean;
    position: FloatingPosition;
    unstyled: boolean | undefined;
    /** Returns the DOM-order index of a `Menubar.Menu` by its id */
    getMenuIndex: (id: string) => number;
    /** Returns all top-level target buttons in DOM order */
    getTargets: () => HTMLButtonElement[];
    /** Returns the indexes of the enabled top-level targets in DOM order */
    getEnabledIndexes: () => number[];
    /** Returns the index of the next/previous enabled target relative to `current` */
    getAdjacentIndex: (current: number, direction: 1 | -1) => number;
    /** Focuses the top-level target at the given index */
    focusTarget: (index: number) => void;
    /** Focuses the first or last item of the (opened) menu at the given index */
    focusMenuItem: (index: number, position: 'first' | 'last') => void;
}
export declare const MenubarContextProvider: import("react").Context<MenubarContextValue | null>, useMenubarContext: () => MenubarContextValue;
export interface MenubarMenuContextValue {
    id: string;
    index: number;
    opened: boolean;
}
export declare const MenubarMenuContextProvider: import("react").Context<MenubarMenuContextValue | null>, useMenubarMenuContext: () => MenubarMenuContextValue;
