import {z} from 'zod'
export type Input = {input_parameters: {[key: string]: unknown}, invocation_mode: 'regular' | 'conversation-simulation', nonsensitive_user_variables: {[key: string]: string}, sensitive_user_variables: {[key: string]: string}};
export type SrcAppEndpointsToolTestToolRequest = {inputs: Array, commit_branch: string, project_path: string, required_envvars: {[key: string]: string}, required_secret_envvars: {[key: string]: string}};
export type CreateApiV1OrganizationToolTestArgs = {organization: string, 'x-mongo-cluster-name'?: (string | null) | undefined, 'Sec-WebSocket-Protocol'?: Array | undefined, body: SrcAppEndpointsToolTestToolRequest};
export type CreateApiV1OrganizationToolTestOptions = {baseUrl?: string | undefined, BearerAuthorization?: string | undefined, BearerAuthorizationOrganization?: string | undefined, Basic?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined};
export const succeededInvocationResult = z.object({succeeded: z.literal(true).optional(), output: z.string(), duration_ms: z.number().int()});
export const failedInvocationResult = z.object({succeeded: z.literal(false).optional(), exception_message: z.string(), exception_type: z.string(), exception_stack_trace: z.array(z.string()), duration_ms: z.number().int()});
export const invocationResult = z.discriminatedUnion("succeeded", [succeededInvocationResult, failedInvocationResult]);
export const srcAppEndpointsToolTestToolResponse = z.object({invocation_results: z.array(invocationResult)});
export const validateResponse = async