namespace MmdPdf.Features
{
///
/// What SearchController needs from the window hosting it, beyond the shared shell services.
/// Values and intents only, never a control - the highlight painting itself stays in the
/// shell (Shell/Search.cs), because it draws onto the page overlay canvases.
///
internal interface ISearchHost : IShellServices
{
/// Path of the working (temp) file the search reads. Null when no document.
string? CurrentFile { get; }
/// The page currently selected in the sidebar/page list.
int CurrentPageIndex { get; }
/// Navigates to the page (the match being stepped to lives there).
void GoToPage(int pageIdx);
/// Writes the result counter's text only ("", "No matches", "Search error"),
/// leaving the tooltip alone - mirrors what the old code did on those paths.
void SetResultText(string text);
/// Writes the "12 / 73" counter and its page-breakdown tooltip.
void SetResultCount(string text, string? tooltip);
/// Removes every highlight rectangle from the page overlays.
void ClearHighlights();
/// Repaints highlights on every page on screen right now, with the current
/// match emphasized.
void RepaintHighlights();
}
}