import { ReactNode } from 'react';
export interface KeyboardShortcut {
    /** Identificador único */
    id: string;
    /** Combinação de teclas (formato Mantine: 'mod+K', 'shift+Enter', etc.) */
    keys: string;
    /** Handler do atalho */
    handler: () => void;
    /** Descrição do atalho */
    description: string;
    /** Grupo do atalho */
    group?: string;
    /** Se o atalho está desabilitado */
    disabled?: boolean;
    /** Escopo (global ou específico) */
    scope?: string;
}
export interface ArchbaseKeyboardShortcutsContextValue {
    /** Atalhos registrados */
    shortcuts: KeyboardShortcut[];
    /** Registrar um atalho */
    registerShortcut: (shortcut: KeyboardShortcut) => void;
    /** Remover um atalho */
    unregisterShortcut: (id: string) => void;
    /** Atualizar um atalho */
    updateShortcut: (id: string, updates: Partial<KeyboardShortcut>) => void;
    /** Abrir modal de ajuda */
    openHelpModal: () => void;
    /** Fechar modal de ajuda */
    closeHelpModal: () => void;
    /** Se o modal está aberto */
    isHelpModalOpen: boolean;
}
export interface ArchbaseKeyboardShortcutsProviderProps {
    children: ReactNode;
    /** Tecla para abrir o modal de ajuda (padrão: '?') */
    helpKey?: string;
    /** Desabilitar modal de ajuda */
    disableHelpModal?: boolean;
    /** Atalhos iniciais */
    initialShortcuts?: Omit<KeyboardShortcut, 'id'>[];
}
export interface ArchbaseKeyboardShortcutsModalProps {
    /** Se o modal está aberto */
    opened: boolean;
    /** Callback ao fechar */
    onClose: () => void;
    /** Atalhos a exibir */
    shortcuts: KeyboardShortcut[];
    /** Título do modal */
    title?: string;
    /** Mostrar campo de busca */
    searchable?: boolean;
}
export interface UseArchbaseRegisterShortcutOptions {
    /** Descrição do atalho */
    description: string;
    /** Grupo do atalho */
    group?: string;
    /** Se o atalho está desabilitado */
    disabled?: boolean;
    /** Escopo do atalho */
    scope?: string;
}
export declare function useArchbaseKeyboardShortcuts(): ArchbaseKeyboardShortcutsContextValue;
export declare function ArchbaseKeyboardShortcutsProvider({ children, helpKey, disableHelpModal, initialShortcuts, }: ArchbaseKeyboardShortcutsProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function ArchbaseKeyboardShortcutsModal({ opened, onClose, shortcuts, title, searchable, }: ArchbaseKeyboardShortcutsModalProps): import("react/jsx-runtime").JSX.Element;
export declare function useArchbaseRegisterShortcut(keys: string, handler: () => void, options: UseArchbaseRegisterShortcutOptions): void;
export interface UseArchbaseShortcutScopeReturn {
    /** Registrar atalho no escopo */
    register: (keys: string, handler: () => void, description: string, group?: string) => () => void;
    /** Desabilitar todos os atalhos do escopo */
    disable: () => void;
    /** Habilitar todos os atalhos do escopo */
    enable: () => void;
}
export declare function useArchbaseShortcutScope(scope: string): UseArchbaseShortcutScopeReturn;
export interface ArchbaseShortcutHintProps {
    /** Combinação de teclas */
    keys: string;
    /** Tamanho */
    size?: 'xs' | 'sm' | 'md';
}
export declare function ArchbaseShortcutHint({ keys, size }: ArchbaseShortcutHintProps): import("react/jsx-runtime").JSX.Element;
export default ArchbaseKeyboardShortcutsProvider;
