import { z } from 'zod';
export declare const CompletionTokenDetailsSchema: z.ZodObject<{
    reasoning: z.ZodOptional<z.ZodNumber>;
    acceptedPrediction: z.ZodOptional<z.ZodNumber>;
    rejectedPrediction: z.ZodOptional<z.ZodNumber>;
    audio: z.ZodOptional<z.ZodNumber>;
    text: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    reasoning?: number | undefined;
    acceptedPrediction?: number | undefined;
    rejectedPrediction?: number | undefined;
    audio?: number | undefined;
    text?: number | undefined;
}, {
    reasoning?: number | undefined;
    acceptedPrediction?: number | undefined;
    rejectedPrediction?: number | undefined;
    audio?: number | undefined;
    text?: number | undefined;
}>;
export type PromptTokenDetails = z.infer<typeof PromptTokenDetailsSchema>;
export declare const PromptTokenDetailsSchema: z.ZodObject<{
    audio: z.ZodOptional<z.ZodNumber>;
    cached: z.ZodOptional<z.ZodNumber>;
    image: z.ZodOptional<z.ZodNumber>;
    text: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
    audio?: number | undefined;
    text?: number | undefined;
    cached?: number | undefined;
    image?: number | undefined;
}, {
    audio?: number | undefined;
    text?: number | undefined;
    cached?: number | undefined;
    image?: number | undefined;
}>;
export type CompletionTokenDetails = z.infer<typeof CompletionTokenDetailsSchema>;
/**
 * Base schema for token usage statistics with all fields optional
 */
export declare const BaseTokenUsageSchema: z.ZodObject<{
    prompt: z.ZodOptional<z.ZodNumber>;
    completion: z.ZodOptional<z.ZodNumber>;
    cached: z.ZodOptional<z.ZodNumber>;
    total: z.ZodOptional<z.ZodNumber>;
    model: z.ZodOptional<z.ZodString>;
    characters: z.ZodOptional<z.ZodNumber>;
    duration: z.ZodOptional<z.ZodNumber>;
    numRequests: z.ZodOptional<z.ZodNumber>;
    completionDetails: z.ZodOptional<z.ZodObject<{
        reasoning: z.ZodOptional<z.ZodNumber>;
        acceptedPrediction: z.ZodOptional<z.ZodNumber>;
        rejectedPrediction: z.ZodOptional<z.ZodNumber>;
        audio: z.ZodOptional<z.ZodNumber>;
        text: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        reasoning?: number | undefined;
        acceptedPrediction?: number | undefined;
        rejectedPrediction?: number | undefined;
        audio?: number | undefined;
        text?: number | undefined;
    }, {
        reasoning?: number | undefined;
        acceptedPrediction?: number | undefined;
        rejectedPrediction?: number | undefined;
        audio?: number | undefined;
        text?: number | undefined;
    }>>;
    promptDetails: z.ZodOptional<z.ZodObject<{
        audio: z.ZodOptional<z.ZodNumber>;
        cached: z.ZodOptional<z.ZodNumber>;
        image: z.ZodOptional<z.ZodNumber>;
        text: z.ZodOptional<z.ZodNumber>;
    }, "strip", z.ZodTypeAny, {
        audio?: number | undefined;
        text?: number | undefined;
        cached?: number | undefined;
        image?: number | undefined;
    }, {
        audio?: number | undefined;
        text?: number | undefined;
        cached?: number | undefined;
        image?: number | undefined;
    }>>;
    assertions: z.ZodOptional<z.ZodObject<{
        total: z.ZodOptional<z.ZodNumber>;
        prompt: z.ZodOptional<z.ZodNumber>;
        completion: z.ZodOptional<z.ZodNumber>;
        cached: z.ZodOptional<z.ZodNumber>;
        numRequests: z.ZodOptional<z.ZodNumber>;
        completionDetails: z.ZodOptional<z.ZodObject<{
            reasoning: z.ZodOptional<z.ZodNumber>;
            acceptedPrediction: z.ZodOptional<z.ZodNumber>;
            rejectedPrediction: z.ZodOptional<z.ZodNumber>;
            audio: z.ZodOptional<z.ZodNumber>;
            text: z.ZodOptional<z.ZodNumber>;
        }, "strip", z.ZodTypeAny, {
            reasoning?: number | undefined;
            acceptedPrediction?: number | undefined;
            rejectedPrediction?: number | undefined;
            audio?: number | undefined;
            text?: number | undefined;
        }, {
            reasoning?: number | undefined;
            acceptedPrediction?: number | undefined;
            rejectedPrediction?: number | undefined;
            audio?: number | undefined;
            text?: number | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        cached?: number | undefined;
        prompt?: number | undefined;
        completion?: number | undefined;
        total?: number | undefined;
        numRequests?: number | undefined;
        completionDetails?: {
            reasoning?: number | undefined;
            acceptedPrediction?: number | undefined;
            rejectedPrediction?: number | undefined;
            audio?: number | undefined;
            text?: number | undefined;
        } | undefined;
    }, {
        cached?: number | undefined;
        prompt?: number | undefined;
        completion?: number | undefined;
        total?: number | undefined;
        numRequests?: number | undefined;
        completionDetails?: {
            reasoning?: number | undefined;
            acceptedPrediction?: number | undefined;
            rejectedPrediction?: number | undefined;
            audio?: number | undefined;
            text?: number | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    cached?: number | undefined;
    prompt?: number | undefined;
    completion?: number | undefined;
    total?: number | undefined;
    model?: string | undefined;
    characters?: number | undefined;
    duration?: number | undefined;
    numRequests?: number | undefined;
    completionDetails?: {
        reasoning?: number | undefined;
        acceptedPrediction?: number | undefined;
        rejectedPrediction?: number | undefined;
        audio?: number | undefined;
        text?: number | undefined;
    } | undefined;
    promptDetails?: {
        audio?: number | undefined;
        text?: number | undefined;
        cached?: number | undefined;
        image?: number | undefined;
    } | undefined;
    assertions?: {
        cached?: number | undefined;
        prompt?: number | undefined;
        completion?: number | undefined;
        total?: number | undefined;
        numRequests?: number | undefined;
        completionDetails?: {
            reasoning?: number | undefined;
            acceptedPrediction?: number | undefined;
            rejectedPrediction?: number | undefined;
            audio?: number | undefined;
            text?: number | undefined;
        } | undefined;
    } | undefined;
}, {
    cached?: number | undefined;
    prompt?: number | undefined;
    completion?: number | undefined;
    total?: number | undefined;
    model?: string | undefined;
    characters?: number | undefined;
    duration?: number | undefined;
    numRequests?: number | undefined;
    completionDetails?: {
        reasoning?: number | undefined;
        acceptedPrediction?: number | undefined;
        rejectedPrediction?: number | undefined;
        audio?: number | undefined;
        text?: number | undefined;
    } | undefined;
    promptDetails?: {
        audio?: number | undefined;
        text?: number | undefined;
        cached?: number | undefined;
        image?: number | undefined;
    } | undefined;
    assertions?: {
        cached?: number | undefined;
        prompt?: number | undefined;
        completion?: number | undefined;
        total?: number | undefined;
        numRequests?: number | undefined;
        completionDetails?: {
            reasoning?: number | undefined;
            acceptedPrediction?: number | undefined;
            rejectedPrediction?: number | undefined;
            audio?: number | undefined;
            text?: number | undefined;
        } | undefined;
    } | undefined;
}>;
export type BaseTokenUsage = z.infer<typeof BaseTokenUsageSchema>;
export type TokenUsage = z.infer<typeof BaseTokenUsageSchema>;
export type NunjucksFilterMap = Record<string, (...args: any[]) => string>;
//# sourceMappingURL=shared.d.ts.map