/**
 * Hook personalizado para editor WYSIWYG
 *
 * Implementación usando Selection API y Range API nativas del navegador.
 *
 * **Ventajas de usar Selection API vs document.execCommand (deprecado):**
 * - ✅ Control total sobre el HTML generado (consistente entre navegadores)
 * - ✅ APIs modernas y mantenidas
 * - ✅ Mayor flexibilidad para personalizar comportamientos
 * - ✅ Mejor manejo de estados de formato
 * - ✅ No dependiente de APIs deprecadas
 *
 * **Cómo funciona:**
 * - `window.getSelection()`: Obtiene la selección actual del usuario
 * - `Range`: Define el rango de texto seleccionado
 * - `surroundContents()`: Envuelve la selección en un elemento HTML
 * - `extractContents()`: Extrae el contenido de la selección
 * - `insertNode()`: Inserta un nodo en la posición del cursor
 *
 * @returns Objeto con refs, estados y funciones del editor
 */
export declare const useWysiwyg: () => {
    editorRef: import('react').RefObject<HTMLDivElement>;
    isFocused: boolean;
    setIsFocused: import('react').Dispatch<import('react').SetStateAction<boolean>>;
    activeFormats: Set<string>;
    execCommand: (command: string, value?: string) => void;
    updateActiveFormats: () => void;
    handleEditorClick: () => void;
    insertEmoji: (emoji: string) => void;
    insertMention: (mention: string) => void;
    getHTML: () => string;
    setHTML: (html: string) => void;
    clear: () => void;
    isEmpty: () => boolean;
};
//# sourceMappingURL=useWysiwyg.d.ts.map