import type { ReactNode } from 'react'; import type { SearxngCardState, SearxngSettingsController } from './searxng-store.js'; /** Injected face the slot registration hands this card. */ export interface SearxngCardInjected { controller: SearxngSettingsController; /** * Selector hook over the card's store. The registration hands the store to * the renderer as `hooks.searxngCard`; the renderer binds it and delivers it * here under the capitalized `use` name. */ useSearxngCard: (select: (snapshot: SearxngCardState) => T) => T; } /** * Props delivered by the slot outlet: the inject face, the locale seat, and * the view the owner asks for. */ export type SearxngCardProps = SearxngCardInjected & { t: (key: string, params?: Record) => string; /** `summary`: the row's one-liner. `page`: the configure page's body. */ view: 'summary' | 'page'; }; /** * Render the view the owner asks for. * @param props - injected controller/hook, the `t` seat, and the owner's view. * @returns the element for that view. */ export declare function SearxngCard(props: SearxngCardProps): ReactNode;