import type { ReactElement } from 'react'; /** * Standard, natively-handled roles. All but `'reload'` map straight onto a * muda `PredefinedMenuItem` on macOS (no JS involved) or a native * window/process action on Windows — see `crates/native/src/menu.rs`'s * `predefined_localized` / `windows_role_item`. `'reload'` has no native * counterpart, so it's JS sugar for `action: ` instead (see * the module doc comment). */ export type AppMenuItemRole = 'quit' | 'close' | 'minimize' | 'zoom' | 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'reload'; /** A built-in `` / `` / `` element, or your own function. */ export type AppMenuAction = ReactElement | (() => void | Promise); export interface AppMenuEntry { label: string; shortcut?: string; disabled?: boolean; /** A custom function, or one of the client-behaviour `` elements (`Reload`/`Navigate`/`Run`). */ action?: AppMenuAction; /** A nested submenu (in place of an action). */ items?: AppMenuItemSpec[]; } export type AppMenuItemSpec = AppMenuEntry | { role: AppMenuItemRole; } | { separator: true; }; /** Standard submenu roles for a top-level `AppMenu` entry. */ export type AppMenuRole = 'editMenu' | 'windowMenu'; /** One top-level menu (e.g. "File") — a custom submenu, or a standard role submenu. */ export type AppMenu = { label: string; items: AppMenuItemSpec[]; } | { role: AppMenuRole; }; export declare function useAppMenu(menus: AppMenu[]): void; //# sourceMappingURL=app-menu.d.ts.map