import { Elysia } from 'elysia';
import type { AIMessage, RAGBackendsResponse, RAGDocumentChunksResponse, RAGDocumentsResponse, RAGChatPluginConfig, RAGMutationResponse, RAGSource } from '../../../types/ai';
export declare const ragChat: (config: RAGChatPluginConfig) => Elysia<"", {
    decorator: {};
    store: {};
    derive: {};
    resolve: {};
}, {
    typebox: {};
    error: {};
}, {
    schema: {};
    standaloneSchema: {};
    macro: {};
    macroFn: {};
    parser: {};
    response: {};
}, {
    [x: string]: {
        subscribe: {
            body: unknown;
            params: {};
            query: unknown;
            headers: unknown;
            response: {};
        };
    };
} & {
    [x: string]: {
        search: {
            post: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: Response | {
                        ok: boolean;
                        results?: RAGSource[];
                        error?: string;
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        status: {
            get: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: Response | {
                        capabilities: import("./types").RAGBackendCapabilities | undefined;
                        ok: true;
                        status: import("./types").RAGVectorStoreStatus | undefined;
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        documents: {
            get: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: Response | RAGDocumentsResponse | {
                        ok: false;
                        error: string;
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        documents: {
            post: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: Response | RAGMutationResponse;
                };
            };
        };
    };
} & {
    [x: string]: {
        documents: {
            ":id": {
                chunks: {
                    get: {
                        body: unknown;
                        params: {
                            id: string;
                        } & {};
                        query: unknown;
                        headers: unknown;
                        response: {
                            200: Response | RAGDocumentChunksResponse;
                            422: {
                                type: "validation";
                                on: string;
                                summary?: string;
                                message?: string;
                                found?: unknown;
                                property?: string;
                                expected?: string;
                            };
                        };
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        backends: {
            get: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: RAGBackendsResponse | {
                        ok: false;
                        error: string;
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        ingest: {
            post: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: {
                        count?: number;
                        documentCount?: number;
                        ok: boolean;
                        error?: string;
                    };
                };
            };
        };
    };
} & ({
    [x: string]: {
        index: {
            delete: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: {
                        ok: boolean;
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        documents: {
            ":id": {
                delete: {
                    body: unknown;
                    params: {
                        id: string;
                    } & {};
                    query: unknown;
                    headers: unknown;
                    response: {
                        200: Response | RAGMutationResponse;
                        422: {
                            type: "validation";
                            on: string;
                            summary?: string;
                            message?: string;
                            found?: unknown;
                            property?: string;
                            expected?: string;
                        };
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        reseed: {
            post: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: Response | RAGMutationResponse;
                };
            };
        };
    };
} & {
    [x: string]: {
        reset: {
            post: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: Response | RAGMutationResponse;
                };
            };
        };
    };
} & ({
    [x: string]: {
        conversations: {
            get: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: import("../..").AIConversationSummary[];
                };
            };
        };
    };
} & {
    [x: string]: {
        conversations: {
            ":id": {
                get: {
                    body: unknown;
                    params: {
                        id: string;
                    } & {};
                    query: unknown;
                    headers: unknown;
                    response: {
                        200: Response | {
                            id: string;
                            messages: AIMessage[];
                            title: string;
                        };
                        422: {
                            type: "validation";
                            on: string;
                            summary?: string;
                            message?: string;
                            found?: unknown;
                            property?: string;
                            expected?: string;
                        };
                    };
                };
            };
        };
    };
} & ({
    [x: string]: {
        conversations: {
            ":id": {
                delete: {
                    body: unknown;
                    params: {
                        id: string;
                    } & {};
                    query: unknown;
                    headers: unknown;
                    response: {
                        200: {
                            ok: boolean;
                        };
                        422: {
                            type: "validation";
                            on: string;
                            summary?: string;
                            message?: string;
                            found?: unknown;
                            property?: string;
                            expected?: string;
                        };
                    };
                };
            };
        };
    };
} | ({
    [x: string]: {
        conversations: {
            ":id": {
                delete: {
                    body: unknown;
                    params: {
                        id: string;
                    } & {};
                    query: unknown;
                    headers: unknown;
                    response: {
                        200: {
                            ok: boolean;
                        };
                        422: {
                            type: "validation";
                            on: string;
                            summary?: string;
                            message?: string;
                            found?: unknown;
                            property?: string;
                            expected?: string;
                        };
                    };
                };
            };
        };
    };
} & {
    [x: string]: {
        message: {
            post: {
                body: unknown;
                params: {};
                query: unknown;
                headers: unknown;
                response: {
                    200: Response;
                };
            };
        };
    };
} & {
    [x: string]: {
        sse: {
            ":conversationId": {
                ":messageId": {
                    get: {
                        body: unknown;
                        params: {
                            conversationId: string;
                            messageId: string;
                        } & {};
                        query: unknown;
                        headers: unknown;
                        response: {
                            200: AsyncGenerator<{
                                data: string;
                                event: string;
                            }, void, unknown>;
                            422: {
                                type: "validation";
                                on: string;
                                summary?: string;
                                message?: string;
                                found?: unknown;
                                property?: string;
                                expected?: string;
                            };
                        };
                    };
                };
            };
        };
    };
})))), {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
    response: {};
}, {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
    response: {};
} & {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
    response: {};
}>;
