import { ChatCompletion, ChatCompletionCreateParams, ChatCompletionCreateParamsBase, ChatCompletionFunctionTool, ChatCompletionMessage, ChatCompletionMessageFunctionToolCall, ChatCompletionStreamingToolRunnerParams, ChatCompletionStreamParams, ChatCompletionToolRunnerParams, ParsedChatCompletion } from "../resources/chat/completions.js"; import { type ResponseFormatTextJSONSchemaConfig } from "../resources/responses/responses.js"; import { ResponseFormatJSONSchema } from "../resources/shared.js"; type AnyChatCompletionCreateParams = ChatCompletionCreateParams | ChatCompletionToolRunnerParams | ChatCompletionStreamingToolRunnerParams | ChatCompletionStreamParams; type Unpacked = T extends (infer U)[] ? U : T; type ToolCall = Unpacked; export declare function isChatCompletionFunctionTool(tool: ToolCall): tool is ChatCompletionFunctionTool; export type ExtractParsedContentFromParams = Params['response_format'] extends AutoParseableResponseFormat ? P : null; export type AutoParseableResponseFormat = ResponseFormatJSONSchema & { __output: ParsedT; $brand: 'auto-parseable-response-format'; $parseRaw(content: string): ParsedT; }; export declare function makeParseableResponseFormat(response_format: ResponseFormatJSONSchema, parser: (content: string) => ParsedT): AutoParseableResponseFormat; export type AutoParseableTextFormat = ResponseFormatTextJSONSchemaConfig & { __output: ParsedT; $brand: 'auto-parseable-response-format'; $parseRaw(content: string): ParsedT; }; export declare function makeParseableTextFormat(response_format: ResponseFormatTextJSONSchemaConfig, parser: (content: string) => ParsedT): AutoParseableTextFormat; export declare function isAutoParsableResponseFormat(response_format: any): response_format is AutoParseableResponseFormat; type ToolOptions = { name: string; arguments: any; function?: ((args: any) => any) | undefined; }; export type AutoParseableTool = ChatCompletionFunctionTool & { __arguments: OptionsT['arguments']; __name: OptionsT['name']; __hasFunction: HasFunction; $brand: 'auto-parseable-tool'; $callback: ((args: OptionsT['arguments']) => any) | undefined; $parseRaw(args: string): OptionsT['arguments']; }; export declare function makeParseableTool(tool: ChatCompletionFunctionTool, { parser, callback, }: { parser: (content: string) => OptionsT['arguments']; callback: ((args: any) => any) | undefined; }): AutoParseableTool; export declare function isAutoParsableTool(tool: any): tool is AutoParseableTool; export declare function maybeParseChatCompletion>>(completion: ChatCompletion, params: Params): ParsedChatCompletion; export declare function parseChatCompletion>(completion: ChatCompletion, params: Params): ParsedChatCompletion; export declare function shouldParseToolCall(params: ChatCompletionCreateParams | null | undefined, toolCall: ChatCompletionMessageFunctionToolCall): boolean; export declare function hasAutoParseableInput(params: AnyChatCompletionCreateParams): boolean; export declare function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls: ChatCompletionMessage['tool_calls']): asserts toolCalls is ChatCompletionMessageFunctionToolCall[]; export declare function validateInputTools(tools: ChatCompletionCreateParamsBase['tools']): void; export {}; //# sourceMappingURL=parser.d.ts.map