import * as LLMBridgeTypes from "./types";
export interface LLMBridge {
    registerProvider(name: string, provider: LLMBridgeTypes.Provider): void;
    use(plugin: LLMBridgeTypes.Plugin<any, any, any, any>): void;
    getTextResponse(model: LLMBridgeTypes.Model, system_prompt: string | null, messages: LLMBridgeTypes.Message[], options: LLMBridgeTypes.Options): Promise<string | null>;
    run(model: LLMBridgeTypes.Model, systemPrompt: string | null, messages: LLMBridgeTypes.Message[], options: LLMBridgeTypes.Options): Promise<LLMBridgeTypes.Response>;
    getEmbeddings(model: LLMBridgeTypes.Model, text: string): Promise<number[]>;
    utils: {
        cleanJsonSchema(schema: any): any;
        addPropertyOrdering(schema: any): any;
    };
}
export declare namespace LLMBridge {
    export type Model = LLMBridgeTypes.Model;
    export type Provider = LLMBridgeTypes.Provider;
    export type Plugin<T1, T2, T3, T4> = LLMBridgeTypes.Plugin<T1, T2, T3, T4>;
    export type Plugins = LLMBridgeTypes.Plugins;
    export type Message = LLMBridgeTypes.Message;
    export type MediaMessage = LLMBridgeTypes.MediaMessage;
    export type TextMessage = LLMBridgeTypes.TextMessage;
    export type ToolRequest = LLMBridgeTypes.ToolRequest;
    export type ToolResponse = LLMBridgeTypes.ToolResponse;
    export type MediaMessageContent = LLMBridgeTypes.MediaMessageContent;
    export type Tool = LLMBridgeTypes.Tool;
    export type Options = LLMBridgeTypes.Options;
    export type Response = LLMBridgeTypes.Response;
    export type TokenUsage = LLMBridgeTypes.TokenUsage;
    export type PluginCompletionContext = LLMBridgeTypes.PluginCompletionContext;
    export type PluginEmbeddingsContext = LLMBridgeTypes.PluginEmbeddingsContext;
    export const isTextMessage: typeof LLMBridgeTypes.isTextMessage;
    export const isMediaMessage: typeof LLMBridgeTypes.isMediaMessage;
    export const isToolRequest: typeof LLMBridgeTypes.isToolRequest;
    export const isToolResponse: typeof LLMBridgeTypes.isToolResponse;
    export function registerProvider(name: string, provider: LLMBridgeTypes.Provider): void;
    export function use(plugin: LLMBridgeTypes.Plugin<any, any, any, any>): void;
    export function getTextResponse(model: LLMBridgeTypes.Model, system_prompt: string | null, messages: LLMBridgeTypes.Message[], options: LLMBridgeTypes.Options): Promise<string | null>;
    export function run(model: LLMBridgeTypes.Model, systemPrompt: string | null, messages: LLMBridgeTypes.Message[], options: LLMBridgeTypes.Options): Promise<LLMBridgeTypes.Response>;
    export function getEmbeddings(model: LLMBridgeTypes.Model, text: string): Promise<number[]>;
    function cleanJsonSchema(schema: any): any;
    function addPropertyOrdering(schema: any): any;
    export const utils: {
        cleanJsonSchema: typeof cleanJsonSchema;
        addPropertyOrdering: typeof addPropertyOrdering;
    };
    export {};
}
//# sourceMappingURL=index.d.ts.map