import * as express from 'express';
import { AugmentationIndexer, RetrievalPipeline } from '@roadiehq/rag-ai-node';
import { Logger } from 'winston';
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
import { LoggerService } from '@backstage/backend-plugin-api';
import { BaseLLM } from '@langchain/core/language_models/llms';
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
import { Config } from '@backstage/config';

interface RagAiConfig {
    logger: Logger | LoggerService;
    augmentationIndexer: AugmentationIndexer;
    retrievalPipeline: RetrievalPipeline;
    model: BaseLLM | BaseChatModel;
    config: Config;
}

declare const createApiRoutes: (config: RagAiConfig) => Promise<{
    router: express.Router;
}>;

/**
 * Rag AI backend plugin
 *
 * @public
 */
declare const ragAiPlugin: _backstage_backend_plugin_api.BackendFeature;

export { createApiRoutes, ragAiPlugin as default };
