import type { IncomingMessage, ServerResponse } from 'node:http'; import type { SearchQueryResponse, SearchResult } from '@tinacms/search'; export interface PathConfig { apiURL: string; searchPath: string; } interface SearchIndexOptions { DOCUMENTS?: boolean; PAGE?: { NUMBER: number; SIZE: number; }; } interface SearchIndexResult { RESULT: SearchResult[]; RESULT_LENGTH: number; } interface FuzzySearchWrapper { query: (query: string, options: { limit?: number; cursor?: string; fuzzyOptions?: Record; }) => Promise; } interface SearchIndex { PUT: (docs: Record[]) => Promise; DELETE: (id: string) => Promise; QUERY: (query: { AND?: string[]; OR?: string[]; }, options: SearchIndexOptions) => Promise; fuzzySearchWrapper?: FuzzySearchWrapper; } interface RequestWithBody extends IncomingMessage { body?: { docs?: Record[]; }; } export declare const createSearchIndexRouter: ({ config, searchIndex, }: { config: PathConfig; searchIndex: SearchIndex; }) => { del: (req: IncomingMessage, res: ServerResponse) => Promise; get: (req: IncomingMessage, res: ServerResponse) => Promise; put: (req: RequestWithBody, res: ServerResponse) => Promise; }; export {};