/**
 * Universal Entity Search Component
 *
 * Provides unified search across all accessible entities with proper
 * permission validation, highlighting, and filtering capabilities.
 */
import type { EntityConfig } from '../../lib/entities/types';
export interface EntitySearchProps {
    /** REQUIRED: Entity configs must be passed from server component */
    entities: EntityConfig[];
    placeholder?: string;
    variant?: 'inline' | 'modal' | 'dropdown';
    onResultClick?: (result: SearchResult) => void;
    onSearch?: (query: string, entityName?: string) => void;
    enableEntityFilter?: boolean;
    maxResults?: number;
    className?: string;
}
export interface SearchResult {
    id: string;
    entityName: string;
    entityConfig: EntityConfig;
    title: string;
    description?: string;
    matches: SearchMatch[];
    url: string;
    metadata: {
        createdAt?: string;
        updatedAt?: string;
        createdBy?: string;
    };
    data: Record<string, unknown>;
}
export interface SearchMatch {
    field: string;
    fieldLabel: string;
    value: string;
    highlights: HighlightRange[];
}
export interface HighlightRange {
    start: number;
    end: number;
}
export declare function EntitySearch({ entities, placeholder, variant, onResultClick, onSearch, enableEntityFilter, maxResults, className, }: EntitySearchProps): import("react/jsx-runtime").JSX.Element;
/**
 * Global Search Modal Component
 */
export declare function EntitySearchModal({ isOpen, onClose, onResultClick, entities, }: {
    isOpen: boolean;
    onClose: () => void;
    onResultClick?: (result: SearchResult) => void;
    /** REQUIRED: Entity configs must be passed from server component */
    entities: EntityConfig[];
}): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=EntitySearch.d.ts.map