import type { WidgetChangeEvent } from '../../../domains/widgets/change-events.js'; import type { TitleEditorConfig } from '../../../domains/widgets/shared/widget-header/types.js'; import type { MenuItem } from '../../../shared/types/menu-item.js'; /** Parameters for the title renaming hook. */ export type UseTitleRenamingParams = { /** Whether inline title renaming is enabled. */ enabled: boolean; /** Handler called when the user commits a new title. */ onChange?: (event: WidgetChangeEvent) => void; }; /** Result of the title renaming hook. */ export type UseTitleRenamingResult = { /** "Rename" menu item to inject into the header toolbar; undefined when not enabled. */ renameMenuItem: MenuItem | undefined; /** Config for the inline title editor; undefined when not enabled. */ titleEditorConfig: TitleEditorConfig | undefined; }; /** * Hook that manages inline title renaming state: isEditing, start/cancel/commit * callbacks, titleEditorConfig for the title editor, and a prepared "Rename" menu item. * Emits title/changed on commit. * * @param params - Hook parameters * @returns renameMenuItem and titleEditorConfig * @internal */ export declare function useTitleRenaming(params: UseTitleRenamingParams): UseTitleRenamingResult;