import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type CreateConversationResponseRequestBody = {
    /**
     * The user message to send to the model
     */
    message: components.UserMessageRequest;
    /**
     * The model to use for generation in format provider/model_id (e.g., openai/gpt-4o).
     */
    model: string;
    /**
     * Task ID for continuing a previous conversation turn
     */
    taskId?: string | undefined;
    /**
     * Whether to stream the response (default: true)
     */
    stream?: boolean | undefined;
};
export type CreateConversationResponseRequest = {
    /**
     * The unique identifier of the conversation
     */
    conversationId: string;
    requestBody: CreateConversationResponseRequestBody;
};
export declare const CreateConversationResponseResponseStreamingEventType: {
    readonly PartDone: "part.done";
};
export type CreateConversationResponseResponseStreamingEventType = ClosedEnum<typeof CreateConversationResponseResponseStreamingEventType>;
/**
 * Type discriminator indicating this is a reasoning part
 */
export declare const PartKind: {
    readonly Reasoning: "reasoning";
};
/**
 * Type discriminator indicating this is a reasoning part
 */
export type PartKind = ClosedEnum<typeof PartKind>;
/**
 * A message part containing reasoning or chain-of-thought content
 */
export type PartReasoningPart = {
    /**
     * Unique identifier for the part. Format: reasoning_{ulid} (e.g., reasoning_01hxyz...)
     */
    id: string;
    /**
     * Optional metadata associated with the message part. Can store arbitrary key-value pairs for custom data. Maximum size of 50KB and maximum of 20 keys.
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
    /**
     * Type discriminator indicating this is a reasoning part
     */
    kind: PartKind;
    /**
     * The reasoning or thought process behind the response. Used for chain-of-thought or extended thinking.
     */
    reasoning: string;
    /**
     * Optional cryptographic signature to verify the authenticity and integrity of the reasoning content
     */
    signature?: string | undefined;
};
export type CreateConversationResponseResponseStreamingEventData = {
    /**
     * Unique identifier for this part. Matches the partId from part.delta events.
     */
    partId: string;
    part?: any | undefined;
};
/**
 * Emitted when a part has been fully streamed. Contains the complete part with all content.
 */
export type PartDoneEvent = {
    type: CreateConversationResponseResponseStreamingEventType;
    /**
     * ISO timestamp of when the event occurred
     */
    timestamp: string;
    data: CreateConversationResponseResponseStreamingEventData;
};
export declare const ResponseStreamingEventType: {
    readonly PartDelta: "part.delta";
};
export type ResponseStreamingEventType = ClosedEnum<typeof ResponseStreamingEventType>;
/**
 * Type discriminator indicating this is a reasoning part
 */
export declare const DeltaKind: {
    readonly Reasoning: "reasoning";
};
/**
 * Type discriminator indicating this is a reasoning part
 */
export type DeltaKind = ClosedEnum<typeof DeltaKind>;
/**
 * A message part containing reasoning or chain-of-thought content
 */
export type ReasoningPart = {
    /**
     * Unique identifier for the part. Format: reasoning_{ulid} (e.g., reasoning_01hxyz...)
     */
    id: string;
    /**
     * Optional metadata associated with the message part. Can store arbitrary key-value pairs for custom data. Maximum size of 50KB and maximum of 20 keys.
     */
    metadata?: {
        [k: string]: any;
    } | undefined;
    /**
     * Type discriminator indicating this is a reasoning part
     */
    kind: DeltaKind;
    /**
     * The reasoning or thought process behind the response. Used for chain-of-thought or extended thinking.
     */
    reasoning: string;
    /**
     * Optional cryptographic signature to verify the authenticity and integrity of the reasoning content
     */
    signature?: string | undefined;
};
export type ResponseStreamingEventData = {
    /**
     * Unique identifier for this part. Format: {kind}_{ulid}. Use to correlate with part.done event.
     */
    partId: string;
    delta?: any | undefined;
};
/**
 * Emitted for each content chunk streamed from the LLM. The delta field contains a discriminated union based on the kind field.
 */
export type PartDeltaEvent = {
    type: ResponseStreamingEventType;
    /**
     * ISO timestamp of when the event occurred
     */
    timestamp: string;
    data: ResponseStreamingEventData;
};
/**
 * Union of all possible streaming events. Each event has a type field for discrimination.
 */
export type ResponseStreamingEvent = components.ResponseStartedEvent | components.ResponseDoneEvent | components.ResponseFailedEvent | components.ToolStartedEvent | components.ToolDoneEvent | components.ToolFailedEvent | components.ToolReviewRequestedEvent | components.ToolReviewDoneEvent | components.PartDeltaEvent | components.PartDoneEvent;
/**
 * Response successfully created.
 */
export type CreateConversationResponseResponseBody = {
    data?: components.ResponseStartedEvent | components.ResponseDoneEvent | components.ResponseFailedEvent | components.ToolStartedEvent | components.ToolDoneEvent | components.ToolFailedEvent | components.ToolReviewRequestedEvent | components.ToolReviewDoneEvent | components.PartDeltaEvent | components.PartDoneEvent | undefined;
};
/** @internal */
export type CreateConversationResponseRequestBody$Outbound = {
    message: components.UserMessageRequest$Outbound;
    model: string;
    task_id?: string | undefined;
    stream: boolean;
};
/** @internal */
export declare const CreateConversationResponseRequestBody$outboundSchema: z.ZodType<CreateConversationResponseRequestBody$Outbound, z.ZodTypeDef, CreateConversationResponseRequestBody>;
export declare function createConversationResponseRequestBodyToJSON(createConversationResponseRequestBody: CreateConversationResponseRequestBody): string;
/** @internal */
export type CreateConversationResponseRequest$Outbound = {
    conversation_id: string;
    RequestBody: CreateConversationResponseRequestBody$Outbound;
};
/** @internal */
export declare const CreateConversationResponseRequest$outboundSchema: z.ZodType<CreateConversationResponseRequest$Outbound, z.ZodTypeDef, CreateConversationResponseRequest>;
export declare function createConversationResponseRequestToJSON(createConversationResponseRequest: CreateConversationResponseRequest): string;
/** @internal */
export declare const CreateConversationResponseResponseStreamingEventType$inboundSchema: z.ZodNativeEnum<typeof CreateConversationResponseResponseStreamingEventType>;
/** @internal */
export declare const PartKind$inboundSchema: z.ZodNativeEnum<typeof PartKind>;
/** @internal */
export declare const PartReasoningPart$inboundSchema: z.ZodType<PartReasoningPart, z.ZodTypeDef, unknown>;
export declare function partReasoningPartFromJSON(jsonString: string): SafeParseResult<PartReasoningPart, SDKValidationError>;
/** @internal */
export declare const CreateConversationResponseResponseStreamingEventData$inboundSchema: z.ZodType<CreateConversationResponseResponseStreamingEventData, z.ZodTypeDef, unknown>;
export declare function createConversationResponseResponseStreamingEventDataFromJSON(jsonString: string): SafeParseResult<CreateConversationResponseResponseStreamingEventData, SDKValidationError>;
/** @internal */
export declare const PartDoneEvent$inboundSchema: z.ZodType<PartDoneEvent, z.ZodTypeDef, unknown>;
export declare function partDoneEventFromJSON(jsonString: string): SafeParseResult<PartDoneEvent, SDKValidationError>;
/** @internal */
export declare const ResponseStreamingEventType$inboundSchema: z.ZodNativeEnum<typeof ResponseStreamingEventType>;
/** @internal */
export declare const DeltaKind$inboundSchema: z.ZodNativeEnum<typeof DeltaKind>;
/** @internal */
export declare const ReasoningPart$inboundSchema: z.ZodType<ReasoningPart, z.ZodTypeDef, unknown>;
export declare function reasoningPartFromJSON(jsonString: string): SafeParseResult<ReasoningPart, SDKValidationError>;
/** @internal */
export declare const ResponseStreamingEventData$inboundSchema: z.ZodType<ResponseStreamingEventData, z.ZodTypeDef, unknown>;
export declare function responseStreamingEventDataFromJSON(jsonString: string): SafeParseResult<ResponseStreamingEventData, SDKValidationError>;
/** @internal */
export declare const PartDeltaEvent$inboundSchema: z.ZodType<PartDeltaEvent, z.ZodTypeDef, unknown>;
export declare function partDeltaEventFromJSON(jsonString: string): SafeParseResult<PartDeltaEvent, SDKValidationError>;
/** @internal */
export declare const ResponseStreamingEvent$inboundSchema: z.ZodType<ResponseStreamingEvent, z.ZodTypeDef, unknown>;
export declare function responseStreamingEventFromJSON(jsonString: string): SafeParseResult<ResponseStreamingEvent, SDKValidationError>;
/** @internal */
export declare const CreateConversationResponseResponseBody$inboundSchema: z.ZodType<CreateConversationResponseResponseBody, z.ZodTypeDef, unknown>;
export declare function createConversationResponseResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateConversationResponseResponseBody, SDKValidationError>;
//# sourceMappingURL=createconversationresponse.d.ts.map