import { AssertionValueFunctionContext, AssertionValueFunctionResult } from 'promptfoo';
import { z } from 'zod';
export declare function sanitizeFunctionCallName(name: string): string;
declare const MessageSchema: z.ZodDiscriminatedUnion<"role", [z.ZodObject<z.objectUtil.extendShape<{
    role: z.ZodLiteral<"user">;
    content: z.ZodObject<{
        content: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        content: string;
    }, {
        content: string;
    }>;
    meta: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
}, {
    account_sid: z.ZodString;
    assistant_id: z.ZodString;
    date_created: z.ZodString;
    date_updated: z.ZodString;
    id: z.ZodString;
    identity: z.ZodString;
}>, "strip", z.ZodTypeAny, {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "user";
    content: {
        content: string;
    };
    meta: {};
}, {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "user";
    content: {
        content: string;
    };
    meta: {};
}>, z.ZodObject<z.objectUtil.extendShape<{
    role: z.ZodLiteral<"assistant">;
    content: z.ZodObject<{
        content: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        content: string;
    }, {
        content: string;
    }>;
    meta: z.ZodObject<{
        tokens: z.ZodObject<{
            completionTokens: z.ZodNumber;
            promptTokens: z.ZodNumber;
            totalTokens: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            completionTokens: number;
            promptTokens: number;
            totalTokens: number;
        }, {
            completionTokens: number;
            promptTokens: number;
            totalTokens: number;
        }>;
    }, "strip", z.ZodTypeAny, {
        tokens: {
            completionTokens: number;
            promptTokens: number;
            totalTokens: number;
        };
    }, {
        tokens: {
            completionTokens: number;
            promptTokens: number;
            totalTokens: number;
        };
    }>;
}, {
    account_sid: z.ZodString;
    assistant_id: z.ZodString;
    date_created: z.ZodString;
    date_updated: z.ZodString;
    id: z.ZodString;
    identity: z.ZodString;
}>, "strip", z.ZodTypeAny, {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "assistant";
    content: {
        content: string;
    };
    meta: {
        tokens: {
            completionTokens: number;
            promptTokens: number;
            totalTokens: number;
        };
    };
}, {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "assistant";
    content: {
        content: string;
    };
    meta: {
        tokens: {
            completionTokens: number;
            promptTokens: number;
            totalTokens: number;
        };
    };
}>, z.ZodObject<z.objectUtil.extendShape<{
    role: z.ZodLiteral<"tool">;
    content: z.ZodObject<{
        input: z.ZodString;
        output: z.ZodString;
        name: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        output: string;
        input: string;
        name: string;
    }, {
        output: string;
        input: string;
        name: string;
    }>;
    meta: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
}, {
    account_sid: z.ZodString;
    assistant_id: z.ZodString;
    date_created: z.ZodString;
    date_updated: z.ZodString;
    id: z.ZodString;
    identity: z.ZodString;
}>, "strip", z.ZodTypeAny, {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "tool";
    content: {
        output: string;
        input: string;
        name: string;
    };
    meta: {};
}, {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "tool";
    content: {
        output: string;
        input: string;
        name: string;
    };
    meta: {};
}>]>;
export type Message = z.infer<typeof MessageSchema>;
export declare function findAllToolCalls(messages: Message[]): {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "tool";
    content: {
        output: string;
        input: string;
        name: string;
    };
    meta: {};
}[];
export declare function findToolCallsForResponse(messages: Message[], response: string): {
    id: string;
    identity: string;
    account_sid: string;
    assistant_id: string;
    date_created: string;
    date_updated: string;
    role: "tool";
    content: {
        output: string;
        input: string;
        name: string;
    };
    meta: {};
}[];
export declare function usedTool(_output: string, context: AssertionValueFunctionContext): Promise<AssertionValueFunctionResult>;
export {};
//# sourceMappingURL=usedTool.d.ts.map