import * as z from "zod/v4";
import { ClosedEnum } from "../types/enums.js";
import { ToolCallStatus } from "./toolcallstatus.js";
export type FunctionCallItemSubagentItem = {
    type: string;
    additionalProperties?: {
        [k: string]: any;
    } | undefined;
};
export declare const FunctionCallItemType: {
    readonly FunctionCall: "function_call";
};
export type FunctionCallItemType = ClosedEnum<typeof FunctionCallItemType>;
/**
 * A function call initiated by the model
 */
export type FunctionCallItem = {
    arguments: string;
    callId: string;
    id: string;
    name: string;
    /**
     * Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)
     */
    namespace?: string | undefined;
    status?: ToolCallStatus | undefined;
    /**
     * EXPERIMENTAL — subject to change without notice. String id that matches the `call_id` of the `openrouter:subagent` server tool call that spawned the subagent. Present on every `function_call` item the subagent projects; absent on ordinary function calls.
     */
    subagentId?: string | undefined;
    /**
     * EXPERIMENTAL — subject to change without notice. The subagent's output items produced on this turn. Treat this as an opaque object; you must replay it in the request so that the subagent can continue execution of the tool with the same context. If a subagent created multiple parallel tool calls, only the first tool call will have this field. The other tool calls will only have `subagent_id`. Present only if the tool call originates from a subagent spawned by the `openrouter:subagent` server tool.
     */
    subagentItems?: Array<FunctionCallItemSubagentItem> | undefined;
    type: FunctionCallItemType;
};
/** @internal */
export type FunctionCallItemSubagentItem$Outbound = {
    type: string;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const FunctionCallItemSubagentItem$outboundSchema: z.ZodType<FunctionCallItemSubagentItem$Outbound, FunctionCallItemSubagentItem>;
export declare function functionCallItemSubagentItemToJSON(functionCallItemSubagentItem: FunctionCallItemSubagentItem): string;
/** @internal */
export declare const FunctionCallItemType$outboundSchema: z.ZodEnum<typeof FunctionCallItemType>;
/** @internal */
export type FunctionCallItem$Outbound = {
    arguments: string;
    call_id: string;
    id: string;
    name: string;
    namespace?: string | undefined;
    status?: string | undefined;
    subagent_id?: string | undefined;
    subagent_items?: Array<FunctionCallItemSubagentItem$Outbound> | undefined;
    type: string;
};
/** @internal */
export declare const FunctionCallItem$outboundSchema: z.ZodType<FunctionCallItem$Outbound, FunctionCallItem>;
export declare function functionCallItemToJSON(functionCallItem: FunctionCallItem): string;
//# sourceMappingURL=functioncallitem.d.ts.map