import type { Key } from '@react-types/shared';
export interface UseTabEditingOptions {
    /** Callback when tab selection changes (used to select tab when editing starts) */
    onChange?: (key: Key) => void;
    /** Callback when a tab title is changed */
    onTitleChange?: (key: Key, newTitle: string) => void;
}
export interface UseTabEditingResult {
    /** Currently editing tab key (null if not editing) */
    editingKey: Key | null;
    /** Current edit input value */
    editValue: string;
    /** Set the edit value */
    setEditValue: (value: string) => void;
    /** Start editing a tab with the given title */
    startEditing: (key: Key, currentTitle: string) => void;
    /** Submit the current edit */
    submitEditing: (key: Key, newTitle: string, tabOnTitleChange?: (title: string) => void) => void;
    /** Cancel the current edit */
    cancelEditing: () => void;
}
/**
 * Hook to manage tab title editing state.
 *
 * Provides state and callbacks for inline title editing with support for:
 * - Starting edit mode (selecting the tab and focusing input)
 * - Submitting changes (with tab-level or parent-level callback)
 * - Canceling edits
 */
export declare function useTabEditing({ onChange, onTitleChange, }?: UseTabEditingOptions): UseTabEditingResult;
