/**
 * Highlight Component
 *
 * Renders highlighted search result text with matching terms emphasized
 */
import React from "react";
import { HighlightPart } from "@seekora-ai/ui-sdk-core";
export interface HighlightTheme {
    root?: string;
    highlighted?: string;
    nonHighlighted?: string;
}
export interface HighlightProps {
    /** The search hit containing highlight data */
    hit: Record<string, any>;
    /** The attribute to highlight */
    attribute: string;
    /** Custom className */
    className?: string;
    /** Custom styles */
    style?: React.CSSProperties;
    /** Custom theme */
    theme?: HighlightTheme;
    /** Tag name for root element (default: 'span') */
    tagName?: keyof JSX.IntrinsicElements;
    /** Custom render for highlighted parts */
    renderHighlighted?: (part: HighlightPart, index: number) => React.ReactNode;
    /** Custom render for non-highlighted parts */
    renderNonHighlighted?: (part: HighlightPart, index: number) => React.ReactNode;
    /** Fallback query for client-side highlighting (when server highlight not available) */
    query?: string;
}
export declare const Highlight: React.FC<HighlightProps>;
/**
 * Snippet Component
 *
 * Renders a truncated, highlighted excerpt from search results
 */
export interface SnippetTheme extends HighlightTheme {
    ellipsis?: string;
}
export interface SnippetProps extends Omit<HighlightProps, "theme"> {
    /** Maximum length of snippet (default: 100) */
    maxLength?: number;
    /** Ellipsis to use when truncating (default: '...') */
    ellipsis?: string;
    /** Custom theme */
    theme?: SnippetTheme;
}
export declare const Snippet: React.FC<SnippetProps>;
//# sourceMappingURL=Highlight.d.ts.map