import * as z from "zod/v4";
import * as discriminatedUnionTypes from "../types/discriminatedUnion.js";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { CustomTool, CustomTool$Outbound } from "./customtool.js";
import { SDKValidationError } from "./errors/sdkvalidationerror.js";
import { NamespaceFunctionTool, NamespaceFunctionTool$Outbound } from "./namespacefunctiontool.js";
export type NamespaceToolTool = NamespaceFunctionTool | (CustomTool & {
    type: "custom";
}) | discriminatedUnionTypes.Unknown<"type">;
export declare const NamespaceToolType: {
    readonly Namespace: "namespace";
};
export type NamespaceToolType = ClosedEnum<typeof NamespaceToolType>;
/**
 * Groups function/custom tools under a shared namespace
 */
export type NamespaceTool = {
    description: string;
    name: string;
    tools: Array<NamespaceFunctionTool | (CustomTool & {
        type: "custom";
    }) | discriminatedUnionTypes.Unknown<"type">>;
    type: NamespaceToolType;
};
/** @internal */
export declare const NamespaceToolTool$inboundSchema: z.ZodType<NamespaceToolTool, unknown>;
/** @internal */
export type NamespaceToolTool$Outbound = NamespaceFunctionTool$Outbound | (CustomTool$Outbound & {
    type: "custom";
});
/** @internal */
export declare const NamespaceToolTool$outboundSchema: z.ZodType<NamespaceToolTool$Outbound, NamespaceToolTool>;
export declare function namespaceToolToolToJSON(namespaceToolTool: NamespaceToolTool): string;
export declare function namespaceToolToolFromJSON(jsonString: string): SafeParseResult<NamespaceToolTool, SDKValidationError>;
/** @internal */
export declare const NamespaceToolType$inboundSchema: z.ZodEnum<typeof NamespaceToolType>;
/** @internal */
export declare const NamespaceToolType$outboundSchema: z.ZodEnum<typeof NamespaceToolType>;
/** @internal */
export declare const NamespaceTool$inboundSchema: z.ZodType<NamespaceTool, unknown>;
/** @internal */
export type NamespaceTool$Outbound = {
    description: string;
    name: string;
    tools: Array<NamespaceFunctionTool$Outbound | (CustomTool$Outbound & {
        type: "custom";
    })>;
    type: string;
};
/** @internal */
export declare const NamespaceTool$outboundSchema: z.ZodType<NamespaceTool$Outbound, NamespaceTool>;
export declare function namespaceToolToJSON(namespaceTool: NamespaceTool): string;
export declare function namespaceToolFromJSON(jsonString: string): SafeParseResult<NamespaceTool, SDKValidationError>;
//# sourceMappingURL=namespacetool.d.ts.map