import { z } from 'zod';
import { FetchAdapter } from '../adapter.ts';
export declare const AIGatewayPricingSchema: z.ZodObject<{
    input: z.ZodNumber;
    output: z.ZodNumber;
    cached_input: z.ZodOptional<z.ZodNumber>;
    unit: z.ZodString;
    currency: z.ZodString;
}, z.core.$strip>;
export type AIGatewayPricing = z.infer<typeof AIGatewayPricingSchema>;
export declare const AIGatewayModelProviderSchema: z.ZodObject<{
    env: z.ZodOptional<z.ZodArray<z.ZodString>>;
    api: z.ZodOptional<z.ZodString>;
    doc: z.ZodOptional<z.ZodString>;
    logo_url: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type AIGatewayModelProvider = z.infer<typeof AIGatewayModelProviderSchema>;
export declare const AIGatewayModelSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    created: z.ZodOptional<z.ZodNumber>;
    api: z.ZodOptional<z.ZodString>;
    family: z.ZodOptional<z.ZodString>;
    context_window: z.ZodOptional<z.ZodNumber>;
    max_output_tokens: z.ZodOptional<z.ZodNumber>;
    input_modalities: z.ZodOptional<z.ZodArray<z.ZodString>>;
    output_modalities: z.ZodOptional<z.ZodArray<z.ZodString>>;
    attachment: z.ZodOptional<z.ZodBoolean>;
    reasoning: z.ZodOptional<z.ZodBoolean>;
    tool_call: z.ZodOptional<z.ZodBoolean>;
    temperature: z.ZodOptional<z.ZodBoolean>;
    knowledge: z.ZodOptional<z.ZodString>;
    open_weights: z.ZodOptional<z.ZodBoolean>;
    provider: z.ZodOptional<z.ZodObject<{
        env: z.ZodOptional<z.ZodArray<z.ZodString>>;
        api: z.ZodOptional<z.ZodString>;
        doc: z.ZodOptional<z.ZodString>;
        logo_url: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    pricing: z.ZodOptional<z.ZodObject<{
        input: z.ZodNumber;
        output: z.ZodNumber;
        cached_input: z.ZodOptional<z.ZodNumber>;
        unit: z.ZodString;
        currency: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type AIGatewayModel = z.infer<typeof AIGatewayModelSchema>;
export declare const AIGatewayModelsSchema: z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    created: z.ZodOptional<z.ZodNumber>;
    api: z.ZodOptional<z.ZodString>;
    family: z.ZodOptional<z.ZodString>;
    context_window: z.ZodOptional<z.ZodNumber>;
    max_output_tokens: z.ZodOptional<z.ZodNumber>;
    input_modalities: z.ZodOptional<z.ZodArray<z.ZodString>>;
    output_modalities: z.ZodOptional<z.ZodArray<z.ZodString>>;
    attachment: z.ZodOptional<z.ZodBoolean>;
    reasoning: z.ZodOptional<z.ZodBoolean>;
    tool_call: z.ZodOptional<z.ZodBoolean>;
    temperature: z.ZodOptional<z.ZodBoolean>;
    knowledge: z.ZodOptional<z.ZodString>;
    open_weights: z.ZodOptional<z.ZodBoolean>;
    provider: z.ZodOptional<z.ZodObject<{
        env: z.ZodOptional<z.ZodArray<z.ZodString>>;
        api: z.ZodOptional<z.ZodString>;
        doc: z.ZodOptional<z.ZodString>;
        logo_url: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    pricing: z.ZodOptional<z.ZodObject<{
        input: z.ZodNumber;
        output: z.ZodNumber;
        cached_input: z.ZodOptional<z.ZodNumber>;
        unit: z.ZodString;
        currency: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>>>;
export type AIGatewayModels = z.infer<typeof AIGatewayModelsSchema>;
export declare const AIGatewayModelsResponseSchema: z.ZodObject<{
    success: z.ZodBoolean;
    data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        created: z.ZodOptional<z.ZodNumber>;
        api: z.ZodOptional<z.ZodString>;
        family: z.ZodOptional<z.ZodString>;
        context_window: z.ZodOptional<z.ZodNumber>;
        max_output_tokens: z.ZodOptional<z.ZodNumber>;
        input_modalities: z.ZodOptional<z.ZodArray<z.ZodString>>;
        output_modalities: z.ZodOptional<z.ZodArray<z.ZodString>>;
        attachment: z.ZodOptional<z.ZodBoolean>;
        reasoning: z.ZodOptional<z.ZodBoolean>;
        tool_call: z.ZodOptional<z.ZodBoolean>;
        temperature: z.ZodOptional<z.ZodBoolean>;
        knowledge: z.ZodOptional<z.ZodString>;
        open_weights: z.ZodOptional<z.ZodBoolean>;
        provider: z.ZodOptional<z.ZodObject<{
            env: z.ZodOptional<z.ZodArray<z.ZodString>>;
            api: z.ZodOptional<z.ZodString>;
            doc: z.ZodOptional<z.ZodString>;
            logo_url: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        pricing: z.ZodOptional<z.ZodObject<{
            input: z.ZodNumber;
            output: z.ZodNumber;
            cached_input: z.ZodOptional<z.ZodNumber>;
            unit: z.ZodString;
            currency: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>>>;
    message: z.ZodOptional<z.ZodString>;
    error: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type AIGatewayModelsResponse = z.infer<typeof AIGatewayModelsResponseSchema>;
export declare const AIGatewayChatMessageSchema: z.ZodObject<{
    role: z.ZodEnum<{
        system: "system";
        developer: "developer";
        user: "user";
        assistant: "assistant";
        tool: "tool";
    }>;
    content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
        type: z.ZodString;
    }, z.core.$catchall<z.ZodUnknown>>>, z.ZodNull]>>;
    name: z.ZodOptional<z.ZodString>;
    tool_call_id: z.ZodOptional<z.ZodString>;
    tool_calls: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
}, z.core.$strip>;
export type AIGatewayChatMessage = z.infer<typeof AIGatewayChatMessageSchema>;
export declare const AIGatewayChatCompletionParamsSchema: z.ZodObject<{
    model: z.ZodString;
    messages: z.ZodOptional<z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<{
            system: "system";
            developer: "developer";
            user: "user";
            assistant: "assistant";
            tool: "tool";
        }>;
        content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
            type: z.ZodString;
        }, z.core.$catchall<z.ZodUnknown>>>, z.ZodNull]>>;
        name: z.ZodOptional<z.ZodString>;
        tool_call_id: z.ZodOptional<z.ZodString>;
        tool_calls: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
    }, z.core.$strip>>>;
    prompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    temperature: z.ZodOptional<z.ZodNumber>;
    top_p: z.ZodOptional<z.ZodNumber>;
    max_tokens: z.ZodOptional<z.ZodNumber>;
    stream: z.ZodOptional<z.ZodBoolean>;
    stop: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
}, z.core.$catchall<z.ZodUnknown>>;
export type AIGatewayChatCompletionParams = z.infer<typeof AIGatewayChatCompletionParamsSchema>;
export declare const AIGatewayChatCompletionStreamParamsSchema: z.ZodObject<{
    model: z.ZodString;
    messages: z.ZodOptional<z.ZodArray<z.ZodObject<{
        role: z.ZodEnum<{
            system: "system";
            developer: "developer";
            user: "user";
            assistant: "assistant";
            tool: "tool";
        }>;
        content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
            type: z.ZodString;
        }, z.core.$catchall<z.ZodUnknown>>>, z.ZodNull]>>;
        name: z.ZodOptional<z.ZodString>;
        tool_call_id: z.ZodOptional<z.ZodString>;
        tool_calls: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
    }, z.core.$strip>>>;
    prompt: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    temperature: z.ZodOptional<z.ZodNumber>;
    top_p: z.ZodOptional<z.ZodNumber>;
    max_tokens: z.ZodOptional<z.ZodNumber>;
    stop: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
    stream: z.ZodLiteral<true>;
}, z.core.$catchall<z.ZodUnknown>>;
export type AIGatewayChatCompletionStreamParams = z.infer<typeof AIGatewayChatCompletionStreamParamsSchema>;
export declare const AIGatewayChatCompletionSchema: z.ZodObject<{
    id: z.ZodOptional<z.ZodString>;
    object: z.ZodOptional<z.ZodString>;
    created: z.ZodOptional<z.ZodNumber>;
    model: z.ZodOptional<z.ZodString>;
    choices: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
    usage: z.ZodOptional<z.ZodUnknown>;
    agentuity: z.ZodOptional<z.ZodObject<{
        headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        cost: z.ZodOptional<z.ZodObject<{
            total: z.ZodOptional<z.ZodNumber>;
            promptTokens: z.ZodOptional<z.ZodNumber>;
            completionTokens: z.ZodOptional<z.ZodNumber>;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$catchall<z.ZodUnknown>>;
export type AIGatewayChatCompletion = z.infer<typeof AIGatewayChatCompletionSchema>;
export declare const AIGatewayResponseMetadataSchema: z.ZodObject<{
    headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    cost: z.ZodOptional<z.ZodObject<{
        total: z.ZodOptional<z.ZodNumber>;
        promptTokens: z.ZodOptional<z.ZodNumber>;
        completionTokens: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type AIGatewayResponseMetadata = z.infer<typeof AIGatewayResponseMetadataSchema>;
export type AIGatewayStreamingCompletion = {
    stream: ReadableStream<Uint8Array>;
    metadata: Promise<AIGatewayResponseMetadata>;
};
export declare class AIGatewayService {
    readonly baseUrl: string;
    readonly adapter: FetchAdapter;
    constructor(baseUrl: string, adapter: FetchAdapter);
    listModels(): Promise<AIGatewayModels>;
    complete(params: AIGatewayChatCompletionParams): Promise<AIGatewayChatCompletion>;
    streamComplete(params: AIGatewayChatCompletionParams): Promise<ReadableStream<Uint8Array>>;
    streamCompleteWithMetadata(params: AIGatewayChatCompletionParams): Promise<AIGatewayStreamingCompletion>;
}
//# sourceMappingURL=service.d.ts.map