import { OpenAI } from 'openai';

interface EmbeddingEntry$1 {
    content: string;
    embedding: number[];
}
declare class VectorStoreAWS {
    private s3Bucket;
    private bucketName;
    constructor(accessKeyId: string, secretAccessKey: string, bucketName: string);
    uploadEmbededModeltoAWS(embeddingStore: {
        content: string;
        embedding: number[];
    }[], fileName: string): Promise<{
        embededFileLocation: string;
    }>;
    getKnowledgeData(fileName: string): Promise<EmbeddingEntry$1[]>;
}

interface EmbeddingEntry {
    content: string;
    embedding: number[];
}
declare class Retrival {
    private openai;
    constructor(apiKey: string);
    QnARetrival(embeddingStore: EmbeddingEntry[], question: string): Promise<OpenAI.Chat.Completions.ChatCompletion>;
    semanticSearch(query: string, embeddingStore: EmbeddingEntry[], topN?: number): Promise<EmbeddingEntry[]>;
    private findNearestParagraph;
    private Prompt;
    private compareEmbeddings;
    private cosineSimilarity;
}

interface IParse {
    parse(input: string | Buffer): Promise<string>;
}

declare class UnifiedParser implements IParse {
    parse(input: string | Buffer): Promise<string>;
}

declare class ChunkUtility {
    static splitIntoChunks(text: string, numOfChunks: number, overlapSplitChunks: number): string[];
}

declare class EmbeddingUtility {
    private openai;
    constructor(apiKey: string);
    createEmbedding(chunks: string[]): Promise<{
        content: string;
        embedding: number[];
    }[]>;
}

export { ChunkUtility, EmbeddingUtility, Retrival, UnifiedParser, VectorStoreAWS };
