/** A structured empty-state quick-action chip — `{ id, label, prompt }` plus an * optional icon (library-glyph name, uploaded URL, or icon props). Mirrors the * hub's `AiAgentQuickActionChip` / the SSR `guideWelcome.quickActions` shape so * the fetched (embed) and prop-injected (host) paths render identically. */ export interface EmptyStateQuickAction { id: string; label: string; prompt: string; iconName?: string | null; iconUrl?: string | null; iconProps?: Record | null; } /** An identity icon (agent mode) — library-glyph name, uploaded URL, or icon * props. Resolved via `` as the empty-state glyph. */ export interface EmptyStateIcon { name?: string | null; url?: string | null; props?: Record | null; } /** Wire shape of `GET /api/docs/empty-state` (and the FLAT agent config from * `GET /api/ai-agents/[slug]`, a superset). */ export interface EmptyStateConfig { /** Agent DISPLAY NAME — shown as the empty-state title + panel header. ONLY * the agent public config (`/api/ai-agents/:slug`) emits this; the platform * empty-state endpoint does NOT, so a non-agent Guide chat keeps its built-in * "Guide Mode Chat" / "Mingo Guide" copy. */ name: string | null; /** Agent identity ICON — the configurable glyph shown on the empty state. * Same agent-only provenance as `name`. Null → built-in Mingo mark. */ icon: EmptyStateIcon | null; /** Admin-edited greeting (`chat_admin_personas.empty_state_greeting`). * Null → caller falls back to the explicit prop / in-code default. */ greeting: string | null; /** Override-aware enabled RAG-table ids — the chip-catalog filter. */ enabledRagTableIds: string[]; /** Admin-curated quick actions — the empty-state chips WITH icons. This is the * primary field both endpoints emit; the chat prefers it over * `suggestedQueries` so embed chips carry icons (matches the host SSR path). */ quickActions: EmptyStateQuickAction[]; /** Legacy string-only starter prompts (= `quickActions.map(q => q.prompt)` on * the agent endpoint; absent on the empty-state endpoint). Kept as a fallback * for older backends that emit only strings. */ suggestedQueries: string[]; } /** * Fetch the empty-state config for the CURRENT deployment platform. The * chat source is server-resolved — the client sends NO `source` param. * * URL + auth handling mirror `fetchSlashCommands`: `new URL(url, origin)` * supports relative (proxied) and absolute paths, and `embedAuthedFetch` * attaches the same bearer-act-as + 401 self-heal as every other endpoint. * * On any non-2xx (auth / rate-limit / chat-disabled) returns the neutral * fallback so the empty state silently renders in-code defaults rather than * surfacing 401/403/429 toasts. */ export declare function fetchEmptyStateConfig(signal: AbortSignal | undefined, emptyStateUrl: string): Promise; /** * Shared empty-state config (single fetch per chat surface), via react-query * so every consumer dedupes to ONE request. Keyed on `emptyStateUrl` ALONE — * the request sends no `source` param (resolved server-side), so the URL * fully determines the response. * * `staleTime`/`gcTime: Infinity` → static per session (toggling modes or * remounting the drawer reads from cache, never refetches). * * `enabled` gates the live fetch: pass `false` (e.g. when `emptyStateUrl` is * unset, host-mode) to skip the network call entirely; the hook then returns * the neutral fallback and `loaded: true`. */ export declare function useEmptyStateConfig(emptyStateUrl: string | undefined, options?: { enabled?: boolean; }): { config: EmptyStateConfig; loading: boolean; loaded: boolean; }; //# sourceMappingURL=use-empty-state-config.d.ts.map