import type { RAGAdminActionRecord, RAGAdminJobRecord, RAGBackendCapabilities, RAGSource, RAGVectorStoreStatus } from "@absolutejs/ai";
import { type RAGSectionDiagnostic } from "./htmxCitationFragments";
import { buildRAGRetrievalTracePresentation } from "./presentation";
type RetrievalTrace = Parameters<typeof buildRAGRetrievalTracePresentation>[0];
declare const STREAM_STAGES: readonly ["submitting", "retrieving", "retrieved", "streaming", "complete"];
type RAGStreamStage = (typeof STREAM_STAGES)[number];
/** Server-rendered HTMX fragment renderers for the RAG workflow surface.
 *  Every default emits `${classPrefix}-*` class names (default prefix `rag`) so
 *  a consumer can keep its own design system by passing `classPrefix`. Any
 *  individual renderer can be overridden; the rest fall back to these defaults
 *  (mirrors `@absolutejs/ai`'s `resolveRenderers`). */
export type RAGHTMXRenderConfig = {
    classPrefix?: string;
    tracePanel?: (input: {
        title: string;
        summary: string;
        trace?: RetrievalTrace;
    }) => string;
    stageRow?: (currentStage: RAGStreamStage) => string;
    capabilities?: (capabilities?: RAGBackendCapabilities) => string;
    nativeSource?: (status?: RAGVectorStoreStatus) => string;
    statusSummary?: (status?: RAGVectorStoreStatus) => string;
    statusMessage?: (status?: RAGVectorStoreStatus) => string;
    detailList?: (lines: string[], fallback: string) => string;
    adminJobCards?: (jobs?: RAGAdminJobRecord[]) => string;
    adminActionCards?: (actions?: RAGAdminActionRecord[]) => string;
    citations?: (sources: RAGSource[]) => string;
    sourceSummaries?: (sources: RAGSource[]) => string;
    sectionDiagnosticCard?: (diagnostic: RAGSectionDiagnostic) => string;
};
export type ResolvedRAGHTMXRenderers = Required<Omit<RAGHTMXRenderConfig, "classPrefix">> & {
    classPrefix: string;
};
export declare const resolveRAGHTMXRenderers: (custom?: RAGHTMXRenderConfig) => ResolvedRAGHTMXRenderers;
export {};
