import type { AnswerType } from './types'; import { type SearchResult, SubjectError } from './subject-shared'; export interface SingleSearchDependencies { answerType: AnswerType; query: string; searchApi?: string; searchHandler?: (query: string, answerType: number) => Promise; fetcher?: typeof fetch; } export interface SingleSearchSelection { selectedTitle: string; detail: SearchResult & { id: string | number; customId: string; }; } export interface SingleDialogState { correctHintDialogOpen: boolean; changeTypeDialogOpen: boolean; hasShownCorrectHint: boolean; } export type SingleSaveDecision = { kind: 'error'; error: SubjectError; } | { kind: 'confirm-change-type'; } | { kind: 'confirm-correct-hint'; } | { kind: 'save'; }; export declare function resolveSingleSearchAnswerType(type: AnswerType): 0 | 1 | 5; export declare function hasSingleSearchSource(searchApi?: string, searchHandler?: SingleSearchDependencies['searchHandler']): boolean; export declare function normalizeSingleSearchResults(payload: any): SearchResult[]; export declare function buildSingleSearchUrl(searchApi: string, query: string, answerType: number): string; export declare function searchSingleSubjects({ answerType, query, searchApi, searchHandler, fetcher, }: SingleSearchDependencies): Promise; export declare function buildSingleSearchSelection(item: SearchResult, customId?: string): SingleSearchSelection; export declare function resolveSingleSaveDecision({ errors, hasShownCorrectHint, shouldShowCorrectHint, }: { errors: SubjectError[]; hasShownCorrectHint: boolean; shouldShowCorrectHint: boolean; }): SingleSaveDecision; export declare function applySingleSaveDecisionToDialogs(state: SingleDialogState, decision: SingleSaveDecision): SingleDialogState; export declare function dismissSingleCorrectHintDialog(state: SingleDialogState): SingleDialogState; export declare function acknowledgeSingleCorrectHint(state: SingleDialogState): SingleDialogState; export declare function dismissSingleChangeTypeDialog(state: SingleDialogState): SingleDialogState;