import { ConvoCompletionMessage, ConvoConversationConverter, ConvoModelInfo, FlatConvoConversation } from "@convo-lang/convo-lang";
import { ChatCompletion, ChatCompletionCreateParamsNonStreaming } from './open-ai/resources/chat';
export interface BaseOpenAiConvoConverterOptions {
    chatModel?: string;
    visionModel?: string;
    supportedInputTypes?: string[];
    supportedOutputTypes?: string[];
    /**
     * Roles that will map to the user role
     */
    userRoles?: string[];
    /**
     * Roles that will map to the assistant role
     */
    assistantRoles?: string[];
    /**
     * Roles that will map to the system role
     */
    systemRoles?: string[];
    /**
     * Roles that will map to the function role
     */
    functionRoles?: string[];
    models: ConvoModelInfo[];
    hasVision?: (modelName: string) => boolean;
    transformInput?: (input: ChatCompletionCreateParamsNonStreaming) => ChatCompletionCreateParamsNonStreaming;
    transformOutput?: (output: ChatCompletion) => ChatCompletion;
}
/**
 * A conversation converter for OpenAI like APIs
 */
export declare class BaseOpenAiConvoConverter implements ConvoConversationConverter<ChatCompletionCreateParamsNonStreaming, ChatCompletion> {
    readonly supportedInputTypes: string[];
    readonly supportedOutputTypes: string[];
    readonly userRoles: string[];
    readonly assistantRoles: string[];
    readonly systemRoles: string[];
    readonly functionRoles: string[];
    readonly chatModel?: string;
    readonly visionModel?: string;
    readonly models: ConvoModelInfo[];
    readonly hasVision?: (modelName: string) => boolean;
    readonly transformInput?: (input: ChatCompletionCreateParamsNonStreaming) => ChatCompletionCreateParamsNonStreaming;
    readonly transformOutput?: (output: ChatCompletion) => ChatCompletion;
    constructor({ chatModel, visionModel, supportedInputTypes, supportedOutputTypes, userRoles, assistantRoles, systemRoles, functionRoles, models, hasVision, transformInput, transformOutput, }: BaseOpenAiConvoConverterOptions);
    convertOutputToConvo(output: ChatCompletion, outputType: string, input: ChatCompletionCreateParamsNonStreaming, inputType: string, flat: FlatConvoConversation): ConvoCompletionMessage[];
    convertConvoToInput(flat: FlatConvoConversation, inputType: string): ChatCompletionCreateParamsNonStreaming;
    private isKnownRole;
}
