import { default as React, ReactNode } from 'react';
export interface SpotlightAction {
    /** ID único da ação */
    id: string;
    /** Título da ação */
    title: string;
    /** Descrição opcional */
    description?: string;
    /** Ícone */
    icon?: ReactNode;
    /** Grupo/categoria */
    group?: string;
    /** Atalho de teclado */
    shortcut?: string[];
    /** Callback ao selecionar */
    onTrigger: () => void;
    /** Desabilitado */
    disabled?: boolean;
    /** Palavras-chave para busca */
    keywords?: string[];
    /** Badge */
    badge?: string;
    /** Cor do badge */
    badgeColor?: string;
}
export interface ArchbaseSpotlightProps {
    /** Array de ações */
    actions: SpotlightAction[];
    /** Atalho para abrir (padrão: mod+K) */
    shortcut?: string;
    /** Placeholder da busca */
    searchPlaceholder?: string;
    /** Mensagem quando não encontra resultados */
    nothingFoundMessage?: string;
    /** Limite de resultados exibidos */
    limit?: number;
    /** Filtrar ações por permissão */
    filterByPermission?: (action: SpotlightAction) => boolean;
    /** Agrupar ações */
    groupActions?: boolean;
    /** Loading state */
    loading?: boolean;
    /** Aberto (controlado) */
    opened?: boolean;
    /** Callback ao mudar estado */
    onOpenChange?: (opened: boolean) => void;
    /** Fechar ao selecionar ação */
    closeOnActionTrigger?: boolean;
    /** Destacar match na busca */
    highlightQuery?: boolean;
    /** Ações recentes */
    recentActions?: string[];
    /** Callback ao usar ação (para rastrear recentes) */
    onActionUsed?: (actionId: string) => void;
    /** Máximo de ações recentes */
    maxRecentActions?: number;
}
export declare function ArchbaseSpotlight({ actions, shortcut, searchPlaceholder, nothingFoundMessage, limit, filterByPermission, groupActions, loading, opened: controlledOpened, onOpenChange, closeOnActionTrigger, highlightQuery, recentActions, onActionUsed, maxRecentActions, }: ArchbaseSpotlightProps): import("react/jsx-runtime").JSX.Element;
export interface UseArchbaseSpotlightOptions {
    shortcut?: string;
}
export declare function useArchbaseSpotlight(options?: UseArchbaseSpotlightOptions): {
    opened: boolean;
    open: () => void;
    close: () => void;
    toggle: () => void;
    setOpened: React.Dispatch<React.SetStateAction<boolean>>;
};
export default ArchbaseSpotlight;
