export type UseRAGOptions = {
    autoLoadOps?: boolean;
    autoLoadStatus?: boolean;
    conversationId?: string;
    streamPath?: string;
};
export declare const useRAG: (path: string, options?: UseRAGOptions) => {
    chunkPreview: {
        activeChunkId: string | null;
        activeSectionDiagnostic: import("@absolutejs/ai").RAGSectionRetrievalDiagnostic | null;
        chunkGraph: import("@absolutejs/ai").RAGChunkGraph | null;
        clear: () => void;
        error: string | null;
        inspect: (id: string) => Promise<{
            ok: true;
        } & import("@absolutejs/ai").RAGDocumentChunkPreview>;
        isLoading: boolean;
        navigation: import("@absolutejs/ai").RAGChunkGraphNavigation | null;
        preview: import("@absolutejs/ai").RAGDocumentChunkPreview | null;
        sectionDiagnostics: import("@absolutejs/ai").RAGSectionRetrievalDiagnostic[];
        selectChildSection: (sectionId: string) => void;
        selectChunk: (id: string | null) => void;
        selectParentSection: () => void;
        selectSiblingSection: (sectionId: string) => void;
    };
    citations: {
        citationReferenceMap: import("@absolutejs/ai").RAGCitationReferenceMap;
        citations: import("@absolutejs/ai").RAGCitation[];
        hasCitations: boolean;
        sourceGroups: import("@absolutejs/ai").RAGSourceGroup[];
        sourceSummaries: import("@absolutejs/ai").RAGSourceSummary[];
    };
    documents: {
        documents: import("@absolutejs/ai").RAGIndexedDocument[];
        error: string | null;
        isLoading: boolean;
        lastResponse: import("@absolutejs/ai").RAGDocumentsResponse | null;
        load: (kind?: string) => Promise<import("@absolutejs/ai").RAGDocumentsResponse>;
        reset: () => void;
    };
    evaluate: {
        clearRuns: () => void;
        error: string | null;
        evaluate: (input: import("@absolutejs/ai").RAGEvaluationInput) => Promise<import("@absolutejs/ai").RAGEvaluationResponse>;
        evaluateStream: (input: import("@absolutejs/ai").RAGEvaluationInput, options?: {
            onCase?: (event: {
                caseIndex: number;
                total: number;
                caseResult: import("@absolutejs/ai").RAGEvaluationCaseResult;
            }) => void;
            signal?: AbortSignal;
        }) => Promise<import("@absolutejs/ai").RAGEvaluationResponse>;
        isEvaluating: boolean;
        lastRequest: import("@absolutejs/ai").RAGEvaluationInput | null;
        lastResponse: import("@absolutejs/ai").RAGEvaluationResponse | null;
        leaderboard: import("@absolutejs/ai").RAGEvaluationLeaderboardEntry[];
        removeSuite: (id: string) => void;
        reset: () => void;
        runSuite: (suite: import("@absolutejs/ai").RAGEvaluationSuite, overrides?: Partial<import("@absolutejs/ai").RAGEvaluationInput>) => Promise<{
            caseTraceSnapshots: import("@absolutejs/ai").RAGEvaluationCaseTraceSnapshot[] | undefined;
            elapsedMs: number;
            finishedAt: number;
            id: `${string}-${string}-${string}-${string}-${string}`;
            label: string;
            metadata: Record<string, unknown> | undefined;
            response: import("@absolutejs/ai").RAGEvaluationResponse;
            startedAt: number;
            suiteId: string;
            traceSummary: import("@absolutejs/ai").RAGRetrievalTraceComparisonSummary | undefined;
        }>;
        saveSuite: (suite: import("@absolutejs/ai").RAGEvaluationSuite) => import("@absolutejs/ai").RAGEvaluationSuite;
        streamProgress: {
            done: number;
            total: number;
        } | null;
        suiteRuns: import("@absolutejs/ai").RAGEvaluationSuiteRun[];
        suites: import("@absolutejs/ai").RAGEvaluationSuite[];
    };
    grounding: {
        coverage: "partial" | "grounded" | "ungrounded";
        groundedAnswer: import("@absolutejs/ai").RAGGroundedAnswer;
        hasCitations: boolean;
        hasGrounding: boolean;
        references: import("@absolutejs/ai").RAGGroundingReference[];
        ungroundedReferenceNumbers: number[];
    };
    index: {
        backends: import("@absolutejs/ai").RAGBackendsResponse | null;
        analyzeBackend: () => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        clearIndex: () => Promise<{
            ok: boolean;
        }>;
        createDocument: (input: {
            id?: string;
            title?: string;
            source?: string;
            text: string;
            format?: import("@absolutejs/ai").RAGContentFormat;
            metadata?: Record<string, unknown>;
            chunking?: {
                maxChunkLength?: number;
                chunkOverlap?: number;
                minChunkLength?: number;
                strategy?: "paragraphs" | "sentences" | "fixed" | "source_aware";
            };
        }) => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        deleteDocument: (id: string) => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        error: string | null;
        isLoading: boolean;
        lastMutation: import("@absolutejs/ai").RAGMutationResponse | null;
        loadBackends: () => Promise<import("@absolutejs/ai").RAGBackendsResponse>;
        loadSyncSources: () => Promise<import("@absolutejs/ai").RAGSyncResponse>;
        rebuildNativeIndex: () => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        reindexDocument: (id: string) => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        reindexSource: (source: string) => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        reseed: () => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        reset: () => Promise<import("@absolutejs/ai").RAGMutationResponse>;
        resetState: () => void;
        syncAllSources: (options?: import("@absolutejs/ai").RAGSyncRunOptions) => Promise<{
            ok: true;
            source: import("@absolutejs/ai").RAGSyncSourceRecord;
            partial?: boolean;
        } | {
            ok: true;
            sources: import("@absolutejs/ai").RAGSyncSourceRecord[];
            partial?: boolean;
            failedSourceIds?: string[];
            errorsBySource?: Record<string, string>;
        }>;
        syncSource: (id: string, options?: import("@absolutejs/ai").RAGSyncRunOptions) => Promise<{
            ok: true;
            source: import("@absolutejs/ai").RAGSyncSourceRecord;
            partial?: boolean;
        } | {
            ok: true;
            sources: import("@absolutejs/ai").RAGSyncSourceRecord[];
            partial?: boolean;
            failedSourceIds?: string[];
            errorsBySource?: Record<string, string>;
        }>;
        syncSources: import("@absolutejs/ai").RAGSyncResponse | null;
    };
    ingest: {
        clearIndex: () => Promise<void>;
        error: string | null;
        ingest: (chunks: import("@absolutejs/ai").RAGDocumentChunk[]) => Promise<import("@absolutejs/ai").RAGIngestResponse>;
        ingestChunks: (chunks: import("@absolutejs/ai").RAGDocumentChunk[]) => Promise<import("@absolutejs/ai").RAGIngestResponse>;
        ingestDocuments: (input: import("@absolutejs/ai").RAGDocumentIngestInput) => Promise<import("@absolutejs/ai").RAGIngestResponse>;
        ingestUploads: (input: import("@absolutejs/ai").RAGDocumentUploadIngestInput) => Promise<import("@absolutejs/ai").RAGIngestResponse>;
        ingestUrls: (input: import("@absolutejs/ai").RAGDocumentUrlIngestInput) => Promise<import("@absolutejs/ai").RAGIngestResponse>;
        isIngesting: boolean;
        lastDocumentCount: number | null;
        lastIngestCount: number | null;
        lastResponse: import("@absolutejs/ai").RAGIngestResponse | null;
        reset: () => void;
    };
    ops: {
        admin: import("@absolutejs/ai").RAGAdminCapabilities | undefined;
        adminActions: import("@absolutejs/ai").RAGAdminActionRecord[];
        adminJobs: import("@absolutejs/ai").RAGAdminJobRecord[];
        capabilities: import("@absolutejs/ai").RAGBackendCapabilities | undefined;
        documents: import("@absolutejs/ai").RAGDocumentSummary | undefined;
        error: string | null;
        health: import("@absolutejs/ai").RAGCorpusHealth | undefined;
        ingestJobs: import("@absolutejs/ai").RAGIngestJobRecord[];
        isLoading: boolean;
        maintenance: import("@absolutejs/ai").RAGBackendMaintenanceSummary | undefined;
        operations: import("@absolutejs/ai").RAGOperationsResponse | undefined;
        readiness: import("@absolutejs/ai").RAGExtractorReadiness | undefined;
        refresh: () => Promise<import("@absolutejs/ai").RAGOperationsResponse>;
        reset: () => void;
        status: import("@absolutejs/ai").RAGVectorStoreStatus | undefined;
        syncSources: import("@absolutejs/ai").RAGSyncSourceRecord[];
    };
    search: {
        error: string | null;
        hasSearched: boolean;
        isSearching: boolean;
        lastRequest: import("@absolutejs/ai").RAGSearchRequest | null;
        reset: () => void;
        results: import("@absolutejs/ai").RAGSource[];
        search: (input: {
            query: string;
            nativeQueryProfile?: import("@absolutejs/ai").RAGNativeQueryProfile | undefined;
            nativeCandidateLimit?: number | undefined;
            nativeMaxBackfills?: number | undefined;
            nativeMinResults?: number | undefined;
            nativeFillPolicy?: "strict_topk" | "satisfy_min_results" | undefined;
            filter?: Record<string, unknown> | undefined;
            queryTransform?: import("@absolutejs/ai").RAGQueryTransformProviderLike | undefined;
            candidateTopK?: number | undefined;
            topK?: number | undefined;
            scoreThreshold?: number | undefined;
            retrieval?: (import("@absolutejs/ai").RAGHybridSearchOptions | import("@absolutejs/ai").RAGHybridRetrievalMode) | undefined;
            model?: string | undefined;
            nativeQueryMultiplier?: number | undefined;
            persistTrace?: boolean | undefined;
            traceGroupKey?: string | undefined;
            traceTags?: string[] | undefined;
            retrievalStrategy?: import("@absolutejs/ai").RAGRetrievalStrategyProviderLike | undefined;
        }) => Promise<import("@absolutejs/ai").RAGSource[]>;
        searchWithTrace: (input: {
            query: string;
            nativeQueryProfile?: import("@absolutejs/ai").RAGNativeQueryProfile | undefined;
            nativeCandidateLimit?: number | undefined;
            nativeMaxBackfills?: number | undefined;
            nativeMinResults?: number | undefined;
            nativeFillPolicy?: "strict_topk" | "satisfy_min_results" | undefined;
            filter?: Record<string, unknown> | undefined;
            queryTransform?: import("@absolutejs/ai").RAGQueryTransformProviderLike | undefined;
            candidateTopK?: number | undefined;
            topK?: number | undefined;
            scoreThreshold?: number | undefined;
            retrieval?: (import("@absolutejs/ai").RAGHybridSearchOptions | import("@absolutejs/ai").RAGHybridRetrievalMode) | undefined;
            model?: string | undefined;
            nativeQueryMultiplier?: number | undefined;
            persistTrace?: boolean | undefined;
            traceGroupKey?: string | undefined;
            traceTags?: string[] | undefined;
            retrievalStrategy?: import("@absolutejs/ai").RAGRetrievalStrategyProviderLike | undefined;
        }) => Promise<import("../client").RAGDetailedSearchResponse>;
        setResults: import("react").Dispatch<import("react").SetStateAction<import("@absolutejs/ai").RAGSource[]>>;
        trace: import("@absolutejs/ai").RAGRetrievalTrace | undefined;
    };
    sources: {
        citationReferenceMap: import("@absolutejs/ai").RAGCitationReferenceMap;
        chunkGraph: import("@absolutejs/ai").RAGChunkGraph;
        hasSources: boolean;
        latestAssistantMessage: import("@absolutejs/ai").AIMessage | undefined;
        navigationForChunk: (chunkId?: string | null) => import("@absolutejs/ai").RAGChunkGraphNavigation;
        sectionDiagnostics: import("@absolutejs/ai").RAGSectionRetrievalDiagnostic[];
        sourceGroups: import("@absolutejs/ai").RAGSourceGroup[];
        sources: import("@absolutejs/ai").RAGSource[];
        sourceSummaries: import("@absolutejs/ai").RAGSourceSummary[];
    };
    status: {
        capabilities: import("@absolutejs/ai").RAGBackendCapabilities | undefined;
        error: string | null;
        isLoading: boolean;
        refresh: () => Promise<import("@absolutejs/ai").RAGStatusResponse>;
        reset: () => void;
        status: import("@absolutejs/ai").RAGVectorStoreStatus | undefined;
    };
    stream: {
        state: import("@absolutejs/ai").RAGAnswerWorkflowState;
        citationReferenceMap: import("@absolutejs/ai").RAGCitationReferenceMap;
        citations: import("@absolutejs/ai").RAGCitation[];
        coverage: "partial" | "grounded" | "ungrounded";
        groundedAnswer: import("@absolutejs/ai").RAGGroundedAnswer;
        groundingReferences: import("@absolutejs/ai").RAGGroundingReference[];
        hasGrounding: boolean;
        hasRetrieved: boolean;
        hasSources: boolean;
        isAnswerStreaming: boolean;
        isComplete: boolean;
        isError: boolean;
        isRetrieved: boolean;
        isRetrieving: boolean;
        isRunning: boolean;
        latestAssistantMessage: import("@absolutejs/ai").AIMessage | undefined;
        progress: {
            conversationId: string | undefined;
            hasContent: boolean;
            hasRetrieved: boolean;
            hasSources: boolean;
            hasThinking: boolean;
            hasToolCalls: boolean;
            isComplete: boolean;
            isError: boolean;
            isIdle: boolean;
            isRetrieved: boolean;
            isRetrieving: boolean;
            isStreaming: boolean;
            isSubmitting: boolean;
            latestMessage: import("@absolutejs/ai").AIMessage | undefined;
            messageId: string | undefined;
            retrievalDurationMs: number | undefined;
            retrievalStartedAt: number | undefined;
            retrievedAt: number | undefined;
            sourceCount: number;
            stage: import("@absolutejs/ai").RAGStreamStage;
        };
        query: (content: string, attachments?: import("@absolutejs/ai").AIAttachment[]) => void;
        retrieval: import("@absolutejs/ai").RAGRetrievedState | null;
        sourceGroups: import("@absolutejs/ai").RAGSourceGroup[];
        sourceSummaries: import("@absolutejs/ai").RAGSourceSummary[];
        sources: import("@absolutejs/ai").RAGSource[];
        stage: import("@absolutejs/ai").RAGStreamStage;
        ungroundedReferenceNumbers: number[];
        workflow: import("@absolutejs/ai").RAGAnswerWorkflowState;
        branch: (messageId: string, content: string) => void;
        cancel: () => void;
        error: string | null;
        isStreaming: boolean;
        messages: import("@absolutejs/ai").AIMessage[];
        send: (content: string, attachments?: import("@absolutejs/ai").AIAttachment[]) => void;
    };
    workflow: {
        state: import("@absolutejs/ai").RAGAnswerWorkflowState;
        citationReferenceMap: import("@absolutejs/ai").RAGCitationReferenceMap;
        citations: import("@absolutejs/ai").RAGCitation[];
        coverage: "partial" | "grounded" | "ungrounded";
        groundedAnswer: import("@absolutejs/ai").RAGGroundedAnswer;
        groundingReferences: import("@absolutejs/ai").RAGGroundingReference[];
        hasGrounding: boolean;
        hasRetrieved: boolean;
        hasSources: boolean;
        isAnswerStreaming: boolean;
        isComplete: boolean;
        isError: boolean;
        isRetrieved: boolean;
        isRetrieving: boolean;
        isRunning: boolean;
        latestAssistantMessage: import("@absolutejs/ai").AIMessage | undefined;
        progress: {
            conversationId: string | undefined;
            hasContent: boolean;
            hasRetrieved: boolean;
            hasSources: boolean;
            hasThinking: boolean;
            hasToolCalls: boolean;
            isComplete: boolean;
            isError: boolean;
            isIdle: boolean;
            isRetrieved: boolean;
            isRetrieving: boolean;
            isStreaming: boolean;
            isSubmitting: boolean;
            latestMessage: import("@absolutejs/ai").AIMessage | undefined;
            messageId: string | undefined;
            retrievalDurationMs: number | undefined;
            retrievalStartedAt: number | undefined;
            retrievedAt: number | undefined;
            sourceCount: number;
            stage: import("@absolutejs/ai").RAGStreamStage;
        };
        query: (content: string, attachments?: import("@absolutejs/ai").AIAttachment[]) => void;
        retrieval: import("@absolutejs/ai").RAGRetrievedState | null;
        sourceGroups: import("@absolutejs/ai").RAGSourceGroup[];
        sourceSummaries: import("@absolutejs/ai").RAGSourceSummary[];
        sources: import("@absolutejs/ai").RAGSource[];
        stage: import("@absolutejs/ai").RAGStreamStage;
        ungroundedReferenceNumbers: number[];
        workflow: import("@absolutejs/ai").RAGAnswerWorkflowState;
        branch: (messageId: string, content: string) => void;
        cancel: () => void;
        error: string | null;
        isStreaming: boolean;
        messages: import("@absolutejs/ai").AIMessage[];
        send: (content: string, attachments?: import("@absolutejs/ai").AIAttachment[]) => void;
    };
};
export type UseRAGResult = ReturnType<typeof useRAG>;
