export interface CompletionOpts {
    model: string;
    prompt?: string;
    suffix?: string;
    max_tokens?: number;
    temperature?: number;
    top_p?: number;
    n?: number;
    stream?: boolean;
    logprobs?: number;
    echo?: boolean;
    stop?: string | string[];
    presence_penalty?: number;
    frequency_penalty?: number;
    best_of?: number;
    user?: string;
    logit_bias?: {
        [token: string]: number;
    };
}
export interface Completion {
    id: string;
    object: string;
    created: number;
    model: string;
    choices: Choice[];
}
export interface Choice {
    text: string;
    index: number;
    logprobs: any;
    finish_reason: string;
}
export interface SearchOpts {
    engine_id: string;
    query: string;
    documents?: string[];
    file?: string;
    max_rerank?: number;
    return_metadata?: boolean;
    user?: string;
}
export interface Search {
    data: Document[];
    object: string;
}
export interface Document {
    document: number;
    object: string;
    score: number;
    metadata?: any;
}
export interface AnswerOpts {
    model: string;
    question: string;
    examples: string[][];
    examples_context: string;
    documents?: string[];
    file?: string;
    search_model?: string;
    max_rerank?: number;
    temperature?: number;
    logprobs?: number;
    max_tokens?: number;
    stop?: string | string[];
    n?: number;
    logit_bias?: LogitBias;
    return_metadata?: boolean;
    return_prompt?: boolean;
    expand?: string[];
    user?: string;
}
export interface LogitBias {
    [key: string]: number;
}
export interface Answer {
    answers: string[];
    completion: string;
    modeL: string;
    object: string;
    search_model: string;
    selected_documents: AnswerDocument[];
}
export interface AnswerDocument {
    document: number;
    text: string;
}
export interface ClassificationOpts {
    model: string;
    query: string;
    examples?: string[][];
    file?: string;
    labels?: string[];
    search_model?: string;
    temperature?: string;
    logprobs?: number;
    max_examples?: number;
    logit_bias?: LogitBias;
    return_prompt?: boolean;
    return_metadata?: boolean;
    expand?: string[];
    user?: string;
}
export interface Classification {
    completion: string;
    label: string;
    model: string;
    object: string;
    search_model: string;
    selected_examples: ClassificationDocument;
}
export interface ClassificationDocument {
    document: number;
    label: string;
    text: string;
}
export interface EngineData {
    data: Engine[];
    object: string;
}
export interface EmbeddingOpts {
    model: string;
    input: string | string[];
    user?: string;
}
export interface Engine {
    id: string;
    object: string;
    owner: string;
    ready: boolean;
}
export interface Embedding {
    object: string;
    data: EmbeddingData[];
}
export interface EmbeddingData {
    object: string;
    index: number;
    embedding: number[];
}
export default class OpenAI {
    private readonly apiKey;
    constructor(apiKey: string);
    _send_request(url: string, method: string, opts?: any): Promise<any>;
    _check_embeddings_engine_name(model: string): void;
    complete(opts: CompletionOpts): Promise<Completion>;
    encode(): Promise<any[]>;
    search(opts: SearchOpts): Promise<Search>;
    answers(opts: AnswerOpts): Promise<Answer>;
    classification(opts: ClassificationOpts): Promise<Classification>;
    engines(): Promise<any>;
    engine(engine: string): Promise<any>;
    embeddings(opts: EmbeddingOpts): Promise<Embedding>;
}
