import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { ResourceMetadata, ResourceMetadata$Outbound } from "./resourcemetadata.js";
/**
 * The type of event that triggers the workflow. In this case, the workflow is initiated
 *
 * @remarks
 * by an HTTP request. Future iterations may support additional event types beyond HTTP.
 */
export declare const TriggerEventType: {
    readonly Http: "HTTP";
};
/**
 * The type of event that triggers the workflow. In this case, the workflow is initiated
 *
 * @remarks
 * by an HTTP request. Future iterations may support additional event types beyond HTTP.
 */
export type TriggerEventType = ClosedEnum<typeof TriggerEventType>;
/**
 * The HTTP method used to trigger the workflow. This defines the type of request
 *
 * @remarks
 * that will initiate the workflow (e.g., GET, POST).
 */
export declare const Method: {
    readonly Get: "GET";
    readonly Post: "POST";
    readonly Put: "PUT";
    readonly Patch: "PATCH";
    readonly Delete: "DELETE";
};
/**
 * The HTTP method used to trigger the workflow. This defines the type of request
 *
 * @remarks
 * that will initiate the workflow (e.g., GET, POST).
 */
export type Method = ClosedEnum<typeof Method>;
/**
 * Configuration details specific to HTTP-triggered workflows. This object describes the
 *
 * @remarks
 * HTTP method and URL that will trigger the workflow, providing the endpoint and method
 * that should be used to initiate the workflow.
 */
export type TriggerHttpConfig = {
    /**
     * The HTTP method used to trigger the workflow. This defines the type of request
     *
     * @remarks
     * that will initiate the workflow (e.g., GET, POST).
     */
    method?: Method | undefined;
    url?: string | undefined;
};
/**
 * The data type expected for the input field. This indicates whether the input should
 *
 * @remarks
 * be a string, number, boolean, object, or array, ensuring the data is passed in the
 * correct format.
 */
export type FieldDataType = {};
/**
 * The default value for the input field if one is provided. This can be a string, number,
 *
 * @remarks
 * boolean, object, or array. If no value is provided during the trigger, the workflow may
 * use this default value.
 */
export type DefaultValue = string | number | boolean | {
    [k: string]: any;
} | Array<any>;
/**
 * Array of fields required as inputs to trigger the workflow, including field names, data types, and default values.
 */
export type TriggerInputSchema = {
    /**
     * The name of the input field expected by the workflow. This key must match the name
     *
     * @remarks
     * provided in the `trigger_inputs` when triggering the workflow.
     */
    fieldName?: string | undefined;
    /**
     * The data type expected for the input field. This indicates whether the input should
     *
     * @remarks
     * be a string, number, boolean, object, or array, ensuring the data is passed in the
     * correct format.
     */
    fieldDataType?: FieldDataType | undefined;
    /**
     * The default value for the input field if one is provided. This can be a string, number,
     *
     * @remarks
     * boolean, object, or array. If no value is provided during the trigger, the workflow may
     * use this default value.
     */
    defaultValue?: string | number | boolean | {
        [k: string]: any;
    } | Array<any> | undefined;
};
/**
 * Control information and metadata for the response.
 */
export type WorkflowTriggerRequirementsSuccess = {
    triggerId?: string | null | undefined;
    /**
     * The type of event that triggers the workflow. In this case, the workflow is initiated
     *
     * @remarks
     * by an HTTP request. Future iterations may support additional event types beyond HTTP.
     */
    triggerEventType?: TriggerEventType | undefined;
    /**
     * Configuration details specific to HTTP-triggered workflows. This object describes the
     *
     * @remarks
     * HTTP method and URL that will trigger the workflow, providing the endpoint and method
     * that should be used to initiate the workflow.
     */
    triggerHttpConfig?: TriggerHttpConfig | undefined;
    /**
     * A list of input fields that define the structure of the data required to trigger the workflow.
     *
     * @remarks
     * Each item describes a field that must be included in the request when the workflow is triggered.
     * The schema includes the field name, expected data type, and any default values for the input.
     */
    triggerInputSchema?: Array<TriggerInputSchema> | undefined;
    metadata?: ResourceMetadata | undefined;
    /**
     * The maximum number of items that can be returned in a single page.
     */
    pageLimit?: number | null | undefined;
    /**
     * The continuation token used to retrieve a page in a paginated response.
     */
    pageTokenNext?: string | null | undefined;
    /**
     * Unique identifier for the request, useful for tracking and debugging.
     */
    requestId?: string | null | undefined;
    /**
     * The timestamp indicating when the response was generated.
     */
    responseTimestamp?: Date | null | undefined;
    /**
     * The duration of time, in milliseconds, that the server took to process and respond
     *
     * @remarks
     * to the request. This is measured from the time the server received the request
     * until the time the response was sent.
     */
    responseDurationMs?: number | null | undefined;
};
/** @internal */
export declare const TriggerEventType$inboundSchema: z.ZodNativeEnum<typeof TriggerEventType>;
/** @internal */
export declare const TriggerEventType$outboundSchema: z.ZodNativeEnum<typeof TriggerEventType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TriggerEventType$ {
    /** @deprecated use `TriggerEventType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Http: "HTTP";
    }>;
    /** @deprecated use `TriggerEventType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Http: "HTTP";
    }>;
}
/** @internal */
export declare const Method$inboundSchema: z.ZodNativeEnum<typeof Method>;
/** @internal */
export declare const Method$outboundSchema: z.ZodNativeEnum<typeof Method>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Method$ {
    /** @deprecated use `Method$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Get: "GET";
        readonly Post: "POST";
        readonly Put: "PUT";
        readonly Patch: "PATCH";
        readonly Delete: "DELETE";
    }>;
    /** @deprecated use `Method$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Get: "GET";
        readonly Post: "POST";
        readonly Put: "PUT";
        readonly Patch: "PATCH";
        readonly Delete: "DELETE";
    }>;
}
/** @internal */
export declare const TriggerHttpConfig$inboundSchema: z.ZodType<TriggerHttpConfig, z.ZodTypeDef, unknown>;
/** @internal */
export type TriggerHttpConfig$Outbound = {
    method?: string | undefined;
    url?: string | undefined;
};
/** @internal */
export declare const TriggerHttpConfig$outboundSchema: z.ZodType<TriggerHttpConfig$Outbound, z.ZodTypeDef, TriggerHttpConfig>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TriggerHttpConfig$ {
    /** @deprecated use `TriggerHttpConfig$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TriggerHttpConfig, z.ZodTypeDef, unknown>;
    /** @deprecated use `TriggerHttpConfig$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TriggerHttpConfig$Outbound, z.ZodTypeDef, TriggerHttpConfig>;
    /** @deprecated use `TriggerHttpConfig$Outbound` instead. */
    type Outbound = TriggerHttpConfig$Outbound;
}
export declare function triggerHttpConfigToJSON(triggerHttpConfig: TriggerHttpConfig): string;
export declare function triggerHttpConfigFromJSON(jsonString: string): SafeParseResult<TriggerHttpConfig, SDKValidationError>;
/** @internal */
export declare const FieldDataType$inboundSchema: z.ZodType<FieldDataType, z.ZodTypeDef, unknown>;
/** @internal */
export type FieldDataType$Outbound = {};
/** @internal */
export declare const FieldDataType$outboundSchema: z.ZodType<FieldDataType$Outbound, z.ZodTypeDef, FieldDataType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace FieldDataType$ {
    /** @deprecated use `FieldDataType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<FieldDataType, z.ZodTypeDef, unknown>;
    /** @deprecated use `FieldDataType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<FieldDataType$Outbound, z.ZodTypeDef, FieldDataType>;
    /** @deprecated use `FieldDataType$Outbound` instead. */
    type Outbound = FieldDataType$Outbound;
}
export declare function fieldDataTypeToJSON(fieldDataType: FieldDataType): string;
export declare function fieldDataTypeFromJSON(jsonString: string): SafeParseResult<FieldDataType, SDKValidationError>;
/** @internal */
export declare const DefaultValue$inboundSchema: z.ZodType<DefaultValue, z.ZodTypeDef, unknown>;
/** @internal */
export type DefaultValue$Outbound = string | number | boolean | {
    [k: string]: any;
} | Array<any>;
/** @internal */
export declare const DefaultValue$outboundSchema: z.ZodType<DefaultValue$Outbound, z.ZodTypeDef, DefaultValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DefaultValue$ {
    /** @deprecated use `DefaultValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DefaultValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `DefaultValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DefaultValue$Outbound, z.ZodTypeDef, DefaultValue>;
    /** @deprecated use `DefaultValue$Outbound` instead. */
    type Outbound = DefaultValue$Outbound;
}
export declare function defaultValueToJSON(defaultValue: DefaultValue): string;
export declare function defaultValueFromJSON(jsonString: string): SafeParseResult<DefaultValue, SDKValidationError>;
/** @internal */
export declare const TriggerInputSchema$inboundSchema: z.ZodType<TriggerInputSchema, z.ZodTypeDef, unknown>;
/** @internal */
export type TriggerInputSchema$Outbound = {
    field_name?: string | undefined;
    field_data_type?: FieldDataType$Outbound | undefined;
    default_value?: string | number | boolean | {
        [k: string]: any;
    } | Array<any> | undefined;
};
/** @internal */
export declare const TriggerInputSchema$outboundSchema: z.ZodType<TriggerInputSchema$Outbound, z.ZodTypeDef, TriggerInputSchema>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TriggerInputSchema$ {
    /** @deprecated use `TriggerInputSchema$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TriggerInputSchema, z.ZodTypeDef, unknown>;
    /** @deprecated use `TriggerInputSchema$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TriggerInputSchema$Outbound, z.ZodTypeDef, TriggerInputSchema>;
    /** @deprecated use `TriggerInputSchema$Outbound` instead. */
    type Outbound = TriggerInputSchema$Outbound;
}
export declare function triggerInputSchemaToJSON(triggerInputSchema: TriggerInputSchema): string;
export declare function triggerInputSchemaFromJSON(jsonString: string): SafeParseResult<TriggerInputSchema, SDKValidationError>;
/** @internal */
export declare const WorkflowTriggerRequirementsSuccess$inboundSchema: z.ZodType<WorkflowTriggerRequirementsSuccess, z.ZodTypeDef, unknown>;
/** @internal */
export type WorkflowTriggerRequirementsSuccess$Outbound = {
    trigger_id: string | null;
    trigger_event_type?: string | undefined;
    trigger_http_config?: TriggerHttpConfig$Outbound | undefined;
    trigger_input_schema?: Array<TriggerInputSchema$Outbound> | undefined;
    metadata?: ResourceMetadata$Outbound | undefined;
    page_limit?: number | null | undefined;
    page_token_next?: string | null | undefined;
    request_id?: string | null | undefined;
    response_timestamp?: string | null | undefined;
    response_duration_ms?: number | null | undefined;
};
/** @internal */
export declare const WorkflowTriggerRequirementsSuccess$outboundSchema: z.ZodType<WorkflowTriggerRequirementsSuccess$Outbound, z.ZodTypeDef, WorkflowTriggerRequirementsSuccess>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace WorkflowTriggerRequirementsSuccess$ {
    /** @deprecated use `WorkflowTriggerRequirementsSuccess$inboundSchema` instead. */
    const inboundSchema: z.ZodType<WorkflowTriggerRequirementsSuccess, z.ZodTypeDef, unknown>;
    /** @deprecated use `WorkflowTriggerRequirementsSuccess$outboundSchema` instead. */
    const outboundSchema: z.ZodType<WorkflowTriggerRequirementsSuccess$Outbound, z.ZodTypeDef, WorkflowTriggerRequirementsSuccess>;
    /** @deprecated use `WorkflowTriggerRequirementsSuccess$Outbound` instead. */
    type Outbound = WorkflowTriggerRequirementsSuccess$Outbound;
}
export declare function workflowTriggerRequirementsSuccessToJSON(workflowTriggerRequirementsSuccess: WorkflowTriggerRequirementsSuccess): string;
export declare function workflowTriggerRequirementsSuccessFromJSON(jsonString: string): SafeParseResult<WorkflowTriggerRequirementsSuccess, SDKValidationError>;
//# sourceMappingURL=workflowtriggerrequirementssuccess.d.ts.map