import { API_CLIENT_CONDUIT_ANTHROPIC_REFERENCE } from "@infersec/definitions";
import { implementAPIReference, type APIRequest } from "@infersec/fetch";
import { Logger } from "@infersec/logger";
import { APIClient } from "../apiClient/index.js";
import { Configuration } from "../configuration.js";
import { ModelManager } from "../modelManagement/ModelManager.js";
type ConduitAnthropicAPIReferenceHandlers = Parameters<typeof implementAPIReference<typeof API_CLIENT_CONDUIT_ANTHROPIC_REFERENCE>>[0]["api"];
export declare function createConduitAnthropicAPIReferenceHandlers({ apiClient, configuration, getModelID, getModelManager, logger }: {
    apiClient: APIClient;
    configuration: Configuration;
    getModelID: () => string;
    getModelManager: () => ModelManager;
    logger: Logger;
}): ConduitAnthropicAPIReferenceHandlers;
export declare function createPostMessagesHandler(options: {
    apiClient: APIClient;
    configuration: Configuration;
    getModelID: () => string;
    getModelManager: () => ModelManager;
    logger: Logger;
}): (params: {
    req: APIRequest;
    res: import("@infersec/fetch").APIResponse;
    parameters: Record<string, never>;
    query: Record<string, never>;
    body: {
        max_tokens: number;
        messages: ({
            content: string | ({
                text: string;
                type: "text";
            } | {
                source: {
                    data: string;
                    media_type: "image/gif" | "image/jpeg" | "image/png" | "image/webp";
                    type: "base64";
                } | {
                    type: "url";
                    url: string;
                };
                type: "image";
            } | {
                tool_use_id: string;
                content: string | {
                    text: string;
                    type: "text";
                }[];
                type: "tool_result";
                is_error?: boolean | undefined;
            })[];
            role: "user";
        } | {
            content: string | ({
                text: string;
                type: "text";
            } | {
                id: string;
                input: Record<string, unknown>;
                name: string;
                type: "tool_use";
            } | {
                [x: string]: unknown;
                thinking: string;
                type: "thinking";
            } | {
                [x: string]: unknown;
                data: string;
                type: "redacted_thinking";
            })[];
            role: "assistant";
        })[];
        model: string;
        metadata?: {
            user_id?: string | undefined;
        } | undefined;
        stop_sequences?: string[] | undefined;
        stream?: boolean | undefined;
        system?: string | {
            text: string;
            type: "text";
        }[] | undefined;
        temperature?: number | undefined;
        thinking?: {
            budget_tokens: number;
            type: "enabled";
        } | undefined;
        tool_choice?: "none" | "any" | "auto" | {
            type: "auto";
            disable_parallel_tool_use?: boolean | undefined;
        } | {
            type: "any";
            disable_parallel_tool_use?: boolean | undefined;
        } | {
            type: "none";
            disable_parallel_tool_use?: boolean | undefined;
        } | {
            name: string;
            type: "tool";
            disable_parallel_tool_use?: boolean | undefined;
        } | undefined;
        tools?: {
            input_schema: Record<string, unknown>;
            name: string;
            description?: string | undefined;
        }[] | undefined;
        top_k?: number | undefined;
        top_p?: number | undefined;
    };
    responseSchema: undefined;
}) => Promise<{
    body: import("stream").Readable;
    headers?: Record<string, string>;
    status: number;
} | {
    headers?: Record<string, string>;
    status: number;
    statusText: string;
}>;
export {};
