import MiniSearch from "minisearch"; import type { EndpointOutput } from "astro"; import { SearchDocument, SearchIndexOptions } from "./types.js"; /** * Represents all possible acceptable inputs for the search documents functions. * This includes an array or nested array of search documents, * as well as a promise or array of promises that resolve to an array of search documents. */ export type SearchDocumentsInput = SearchDocument[] | SearchDocument[][] | Promise | Promise[]; /** * Unravels all possible search inputs and resolve them to a simple array of search documents. * Also removes documents with duplicate or missing URLs and outputs a warning. */ export declare function getDocuments(input: SearchDocumentsInput): Promise; /** * Generate the MiniSearch object from a list of prepared search documents. * * @param documentsInput search documents or promises from other functions * @param options search index options * @returns a populated MiniSearch object */ export declare function generateIndex(documentsInput: SearchDocumentsInput, options?: SearchIndexOptions): Promise; /** Load a MiniSearch object from a string or JSON object. */ export declare function loadIndex(json: string | any, options?: SearchIndexOptions): MiniSearch; /** * Helper function to both generate an index and output a static endpoint. * @see [Astro docs on static endpoints]() */ export declare function getSearchIndex(documentsInput: SearchDocumentsInput, options?: SearchIndexOptions): Promise;