import { Model } from '@topwrite/common'; export interface SearchResult { title: string; path: string; body?: string; } export type SearchHandler = (keyword: string, part?: string) => Promise | SearchResult[]; interface SearchState { handler?: SearchHandler; results: SearchResult[]; part?: string; query: string; status: 'loading' | 'error' | 'idle'; } declare class Search extends Model { initialState: SearchState; fetch(query: string): AsyncGenerator; setPart(part?: string): Generator; setHandler(handler?: SearchHandler): Generator; } export declare const search: Search; export {};