type AuthToken$1 = string | undefined;
interface Auth$1 {
    /**
     * Which part of the request do we use to send the auth?
     *
     * @default 'header'
     */
    in?: 'header' | 'query' | 'cookie';
    /**
     * Header or query parameter name.
     *
     * @default 'Authorization'
     */
    name?: string;
    scheme?: 'basic' | 'bearer';
    type: 'apiKey' | 'http';
}

interface SerializerOptions$1<T> {
    /**
     * @default true
     */
    explode: boolean;
    style: T;
}
type ArrayStyle$1 = 'form' | 'spaceDelimited' | 'pipeDelimited';
type ObjectStyle$1 = 'form' | 'deepObject';

type QuerySerializer$1 = (query: Record<string, unknown>) => string;
type BodySerializer$1 = (body: any) => any;
interface QuerySerializerOptions$1 {
    allowReserved?: boolean;
    array?: SerializerOptions$1<ArrayStyle$1>;
    object?: SerializerOptions$1<ObjectStyle$1>;
}

interface Client$3<RequestFn = never, Config = unknown, MethodFn = never, BuildUrlFn = never> {
    /**
     * Returns the final request URL.
     */
    buildUrl: BuildUrlFn;
    connect: MethodFn;
    delete: MethodFn;
    get: MethodFn;
    getConfig: () => Config;
    head: MethodFn;
    options: MethodFn;
    patch: MethodFn;
    post: MethodFn;
    put: MethodFn;
    request: RequestFn;
    setConfig: (config: Config) => Config;
    trace: MethodFn;
}
interface Config$3 {
    /**
     * Auth token or a function returning auth token. The resolved value will be
     * added to the request payload as defined by its `security` array.
     */
    auth?: ((auth: Auth$1) => Promise<AuthToken$1> | AuthToken$1) | AuthToken$1;
    /**
     * A function for serializing request body parameter. By default,
     * {@link JSON.stringify()} will be used.
     */
    bodySerializer?: BodySerializer$1 | null;
    /**
     * An object containing any HTTP headers that you want to pre-populate your
     * `Headers` object with.
     *
     * {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more}
     */
    headers?: RequestInit['headers'] | Record<string, string | number | boolean | (string | number | boolean)[] | null | undefined | unknown>;
    /**
     * The request method.
     *
     * {@link https://developer.mozilla.org/docs/Web/API/fetch#method See more}
     */
    method?: 'CONNECT' | 'DELETE' | 'GET' | 'HEAD' | 'OPTIONS' | 'PATCH' | 'POST' | 'PUT' | 'TRACE';
    /**
     * A function for serializing request query parameters. By default, arrays
     * will be exploded in form style, objects will be exploded in deepObject
     * style, and reserved characters are percent-encoded.
     *
     * This method will have no effect if the native `paramsSerializer()` Axios
     * API function is used.
     *
     * {@link https://swagger.io/docs/specification/serialization/#query View examples}
     */
    querySerializer?: QuerySerializer$1 | QuerySerializerOptions$1;
    /**
     * A function validating request data. This is useful if you want to ensure
     * the request conforms to the desired shape, so it can be safely sent to
     * the server.
     */
    requestValidator?: (data: unknown) => Promise<unknown>;
    /**
     * A function transforming response data before it's returned. This is useful
     * for post-processing data, e.g. converting ISO strings into Date objects.
     */
    responseTransformer?: (data: unknown) => Promise<unknown>;
    /**
     * A function validating response data. This is useful if you want to ensure
     * the response conforms to the desired shape, so it can be safely passed to
     * the transformers and returned to the user.
     */
    responseValidator?: (data: unknown) => Promise<unknown>;
}

type ErrInterceptor$1<Err, Res, Req, Options> = (error: Err, response: Res, request: Req, options: Options) => Err | Promise<Err>;
type ReqInterceptor$1<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;
type ResInterceptor$1<Res, Req, Options> = (response: Res, request: Req, options: Options) => Res | Promise<Res>;
declare class Interceptors$1<Interceptor> {
    _fns: (Interceptor | null)[];
    constructor();
    clear(): void;
    getInterceptorIndex(id: number | Interceptor): number;
    exists(id: number | Interceptor): boolean;
    eject(id: number | Interceptor): void;
    update(id: number | Interceptor, fn: Interceptor): number | false | Interceptor;
    use(fn: Interceptor): number;
}
interface Middleware$1<Req, Res, Err, Options> {
    error: Pick<Interceptors$1<ErrInterceptor$1<Err, Res, Req, Options>>, 'eject' | 'use'>;
    request: Pick<Interceptors$1<ReqInterceptor$1<Req, Options>>, 'eject' | 'use'>;
    response: Pick<Interceptors$1<ResInterceptor$1<Res, Req, Options>>, 'eject' | 'use'>;
}

type ResponseStyle$1 = 'data' | 'fields';
interface Config$2<T extends ClientOptions$3 = ClientOptions$3> extends Omit<RequestInit, 'body' | 'headers' | 'method'>, Config$3 {
    /**
     * Base URL for all requests made by this client.
     */
    baseUrl?: T['baseUrl'];
    /**
     * Fetch API implementation. You can use this option to provide a custom
     * fetch instance.
     *
     * @default globalThis.fetch
     */
    fetch?: (request: Request) => ReturnType<typeof fetch>;
    /**
     * Please don't use the Fetch client for Next.js applications. The `next`
     * options won't have any effect.
     *
     * Install {@link https://www.npmjs.com/package/@hey-api/client-next `@hey-api/client-next`} instead.
     */
    next?: never;
    /**
     * Return the response data parsed in a specified format. By default, `auto`
     * will infer the appropriate method from the `Content-Type` response header.
     * You can override this behavior with any of the {@link Body} methods.
     * Select `stream` if you don't want to parse response data at all.
     *
     * @default 'auto'
     */
    parseAs?: 'arrayBuffer' | 'auto' | 'blob' | 'formData' | 'json' | 'stream' | 'text';
    /**
     * Should we return only data or multiple fields (data, error, response, etc.)?
     *
     * @default 'fields'
     */
    responseStyle?: ResponseStyle$1;
    /**
     * Throw an error instead of returning it in the response?
     *
     * @default false
     */
    throwOnError?: T['throwOnError'];
}
interface RequestOptions$1<TResponseStyle extends ResponseStyle$1 = 'fields', ThrowOnError extends boolean = boolean, Url extends string = string> extends Config$2<{
    responseStyle: TResponseStyle;
    throwOnError: ThrowOnError;
}> {
    /**
     * Any body that you want to add to your request.
     *
     * {@link https://developer.mozilla.org/docs/Web/API/fetch#body}
     */
    body?: unknown;
    path?: Record<string, unknown>;
    query?: Record<string, unknown>;
    /**
     * Security mechanism(s) to use for the request.
     */
    security?: ReadonlyArray<Auth$1>;
    url: Url;
}
interface ResolvedRequestOptions$1<TResponseStyle extends ResponseStyle$1 = 'fields', ThrowOnError extends boolean = boolean, Url extends string = string> extends RequestOptions$1<TResponseStyle, ThrowOnError, Url> {
    serializedBody?: string;
}
type RequestResult$1<TData = unknown, TError = unknown, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle$1 = 'fields'> = ThrowOnError extends true ? Promise<TResponseStyle extends 'data' ? TData extends Record<string, unknown> ? TData[keyof TData] : TData : {
    data: TData extends Record<string, unknown> ? TData[keyof TData] : TData;
    request: Request;
    response: Response;
}> : Promise<TResponseStyle extends 'data' ? (TData extends Record<string, unknown> ? TData[keyof TData] : TData) | undefined : ({
    data: TData extends Record<string, unknown> ? TData[keyof TData] : TData;
    error: undefined;
} | {
    data: undefined;
    error: TError extends Record<string, unknown> ? TError[keyof TError] : TError;
}) & {
    request: Request;
    response: Response;
}>;
interface ClientOptions$3 {
    baseUrl?: string;
    responseStyle?: ResponseStyle$1;
    throwOnError?: boolean;
}
type MethodFn$1 = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle$1 = 'fields'>(options: Omit<RequestOptions$1<TResponseStyle, ThrowOnError>, 'method'>) => RequestResult$1<TData, TError, ThrowOnError, TResponseStyle>;
type RequestFn$1 = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle$1 = 'fields'>(options: Omit<RequestOptions$1<TResponseStyle, ThrowOnError>, 'method'> & Pick<Required<RequestOptions$1<TResponseStyle, ThrowOnError>>, 'method'>) => RequestResult$1<TData, TError, ThrowOnError, TResponseStyle>;
type BuildUrlFn$1 = <TData extends {
    body?: unknown;
    path?: Record<string, unknown>;
    query?: Record<string, unknown>;
    url: string;
}>(options: Pick<TData, 'url'> & Options$3<TData>) => string;
type Client$2 = Client$3<RequestFn$1, Config$2, MethodFn$1, BuildUrlFn$1> & {
    interceptors: Middleware$1<Request, Response, unknown, ResolvedRequestOptions$1>;
};
interface TDataShape$1 {
    body?: unknown;
    headers?: unknown;
    path?: unknown;
    query?: unknown;
    url: string;
}
type OmitKeys$1<T, K> = Pick<T, Exclude<keyof T, K>>;
type Options$3<TData extends TDataShape$1 = TDataShape$1, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle$1 = 'fields'> = OmitKeys$1<RequestOptions$1<TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & Omit<TData, 'url'>;

type AuthToken = string | undefined;
interface Auth {
    /**
     * Which part of the request do we use to send the auth?
     *
     * @default 'header'
     */
    in?: 'header' | 'query' | 'cookie';
    /**
     * Header or query parameter name.
     *
     * @default 'Authorization'
     */
    name?: string;
    scheme?: 'basic' | 'bearer';
    type: 'apiKey' | 'http';
}

interface SerializerOptions<T> {
    /**
     * @default true
     */
    explode: boolean;
    style: T;
}
type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';
type ObjectStyle = 'form' | 'deepObject';

type QuerySerializer = (query: Record<string, unknown>) => string;
type BodySerializer = (body: any) => any;
interface QuerySerializerOptions {
    allowReserved?: boolean;
    array?: SerializerOptions<ArrayStyle>;
    object?: SerializerOptions<ObjectStyle>;
}

interface Client$1<RequestFn = never, Config = unknown, MethodFn = never, BuildUrlFn = never> {
    /**
     * Returns the final request URL.
     */
    buildUrl: BuildUrlFn;
    connect: MethodFn;
    delete: MethodFn;
    get: MethodFn;
    getConfig: () => Config;
    head: MethodFn;
    options: MethodFn;
    patch: MethodFn;
    post: MethodFn;
    put: MethodFn;
    request: RequestFn;
    setConfig: (config: Config) => Config;
    trace: MethodFn;
}
interface Config$1 {
    /**
     * Auth token or a function returning auth token. The resolved value will be
     * added to the request payload as defined by its `security` array.
     */
    auth?: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken;
    /**
     * A function for serializing request body parameter. By default,
     * {@link JSON.stringify()} will be used.
     */
    bodySerializer?: BodySerializer | null;
    /**
     * An object containing any HTTP headers that you want to pre-populate your
     * `Headers` object with.
     *
     * {@link https://developer.mozilla.org/docs/Web/API/Headers/Headers#init See more}
     */
    headers?: RequestInit['headers'] | Record<string, string | number | boolean | (string | number | boolean)[] | null | undefined | unknown>;
    /**
     * The request method.
     *
     * {@link https://developer.mozilla.org/docs/Web/API/fetch#method See more}
     */
    method?: 'CONNECT' | 'DELETE' | 'GET' | 'HEAD' | 'OPTIONS' | 'PATCH' | 'POST' | 'PUT' | 'TRACE';
    /**
     * A function for serializing request query parameters. By default, arrays
     * will be exploded in form style, objects will be exploded in deepObject
     * style, and reserved characters are percent-encoded.
     *
     * This method will have no effect if the native `paramsSerializer()` Axios
     * API function is used.
     *
     * {@link https://swagger.io/docs/specification/serialization/#query View examples}
     */
    querySerializer?: QuerySerializer | QuerySerializerOptions;
    /**
     * A function validating request data. This is useful if you want to ensure
     * the request conforms to the desired shape, so it can be safely sent to
     * the server.
     */
    requestValidator?: (data: unknown) => Promise<unknown>;
    /**
     * A function transforming response data before it's returned. This is useful
     * for post-processing data, e.g. converting ISO strings into Date objects.
     */
    responseTransformer?: (data: unknown) => Promise<unknown>;
    /**
     * A function validating response data. This is useful if you want to ensure
     * the response conforms to the desired shape, so it can be safely passed to
     * the transformers and returned to the user.
     */
    responseValidator?: (data: unknown) => Promise<unknown>;
}

type ErrInterceptor<Err, Res, Req, Options> = (error: Err, response: Res, request: Req, options: Options) => Err | Promise<Err>;
type ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;
type ResInterceptor<Res, Req, Options> = (response: Res, request: Req, options: Options) => Res | Promise<Res>;
declare class Interceptors<Interceptor> {
    _fns: (Interceptor | null)[];
    constructor();
    clear(): void;
    getInterceptorIndex(id: number | Interceptor): number;
    exists(id: number | Interceptor): boolean;
    eject(id: number | Interceptor): void;
    update(id: number | Interceptor, fn: Interceptor): number | false | Interceptor;
    use(fn: Interceptor): number;
}
interface Middleware<Req, Res, Err, Options> {
    error: Pick<Interceptors<ErrInterceptor<Err, Res, Req, Options>>, 'eject' | 'use'>;
    request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;
    response: Pick<Interceptors<ResInterceptor<Res, Req, Options>>, 'eject' | 'use'>;
}

type ResponseStyle = 'data' | 'fields';
interface Config<T extends ClientOptions$2 = ClientOptions$2> extends Omit<RequestInit, 'body' | 'headers' | 'method'>, Config$1 {
    /**
     * Base URL for all requests made by this client.
     */
    baseUrl?: T['baseUrl'];
    /**
     * Fetch API implementation. You can use this option to provide a custom
     * fetch instance.
     *
     * @default globalThis.fetch
     */
    fetch?: (request: Request) => ReturnType<typeof fetch>;
    /**
     * Please don't use the Fetch client for Next.js applications. The `next`
     * options won't have any effect.
     *
     * Install {@link https://www.npmjs.com/package/@hey-api/client-next `@hey-api/client-next`} instead.
     */
    next?: never;
    /**
     * Return the response data parsed in a specified format. By default, `auto`
     * will infer the appropriate method from the `Content-Type` response header.
     * You can override this behavior with any of the {@link Body} methods.
     * Select `stream` if you don't want to parse response data at all.
     *
     * @default 'auto'
     */
    parseAs?: 'arrayBuffer' | 'auto' | 'blob' | 'formData' | 'json' | 'stream' | 'text';
    /**
     * Should we return only data or multiple fields (data, error, response, etc.)?
     *
     * @default 'fields'
     */
    responseStyle?: ResponseStyle;
    /**
     * Throw an error instead of returning it in the response?
     *
     * @default false
     */
    throwOnError?: T['throwOnError'];
}
interface RequestOptions<TResponseStyle extends ResponseStyle = 'fields', ThrowOnError extends boolean = boolean, Url extends string = string> extends Config<{
    responseStyle: TResponseStyle;
    throwOnError: ThrowOnError;
}> {
    /**
     * Any body that you want to add to your request.
     *
     * {@link https://developer.mozilla.org/docs/Web/API/fetch#body}
     */
    body?: unknown;
    path?: Record<string, unknown>;
    query?: Record<string, unknown>;
    /**
     * Security mechanism(s) to use for the request.
     */
    security?: ReadonlyArray<Auth>;
    url: Url;
}
interface ResolvedRequestOptions<TResponseStyle extends ResponseStyle = 'fields', ThrowOnError extends boolean = boolean, Url extends string = string> extends RequestOptions<TResponseStyle, ThrowOnError, Url> {
    serializedBody?: string;
}
type RequestResult<TData = unknown, TError = unknown, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = 'fields'> = ThrowOnError extends true ? Promise<TResponseStyle extends 'data' ? TData extends Record<string, unknown> ? TData[keyof TData] : TData : {
    data: TData extends Record<string, unknown> ? TData[keyof TData] : TData;
    request: Request;
    response: Response;
}> : Promise<TResponseStyle extends 'data' ? (TData extends Record<string, unknown> ? TData[keyof TData] : TData) | undefined : ({
    data: TData extends Record<string, unknown> ? TData[keyof TData] : TData;
    error: undefined;
} | {
    data: undefined;
    error: TError extends Record<string, unknown> ? TError[keyof TError] : TError;
}) & {
    request: Request;
    response: Response;
}>;
interface ClientOptions$2 {
    baseUrl?: string;
    responseStyle?: ResponseStyle;
    throwOnError?: boolean;
}
type MethodFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<TResponseStyle, ThrowOnError>, 'method'>) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<TResponseStyle, ThrowOnError>, 'method'> & Pick<Required<RequestOptions<TResponseStyle, ThrowOnError>>, 'method'>) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
type BuildUrlFn = <TData extends {
    body?: unknown;
    path?: Record<string, unknown>;
    query?: Record<string, unknown>;
    url: string;
}>(options: Pick<TData, 'url'> & Options$2<TData>) => string;
type Client = Client$1<RequestFn, Config, MethodFn, BuildUrlFn> & {
    interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions>;
};
interface TDataShape {
    body?: unknown;
    headers?: unknown;
    path?: unknown;
    query?: unknown;
    url: string;
}
type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>;
type Options$2<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = 'fields'> = OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & Omit<TData, 'url'>;

/**
 * Request to execute an agent with specific parameters
 */
type AgentExecutionRequest = {
    [key: string]: unknown;
};
type ExecutionResponse = {
    /**
     * The ID of the execution
     */
    execution_id: string;
};
type ExecutionStatusResponse = {
    /**
     * The ID of the execution
     */
    execution_id: string;
    status: Status;
    /**
     * Reason for the current status (if applicable)
     */
    reason?: string;
    /**
     * Time when the status was last updated
     */
    updated_at?: string;
};
type ExecutionResultResponse = {
    /**
     * The ID of the execution
     */
    execution_id: string;
    status: Status;
    /**
     * (Deprecated, use execution_result instead) The structured result data from the execution. Contains the outcome, reasoning, final answer, and result.
     * @deprecated
     */
    result?: {
        [key: string]: unknown;
    };
    /**
     * Error message (if execution failed)
     */
    error?: string;
    execution_result?: ExecutionResult;
};
/**
 * The result of an execution. Contains the outcome, reasoning, and result.
 */
type ExecutionResult = {
    /**
     * The outcome of the execution (success or failure)
     */
    outcome?: 'success' | 'failure';
    /**
     * The reasoning behind the execution outcome
     */
    reasoning?: string;
    /**
     * The structured result data from the execution. This will follow the format defined in the result_schema of the agent.
     */
    result?: {
        [key: string]: unknown;
    };
};
/**
 * Status of the execution
 */
type Status = 'starting' | 'running' | 'paused' | 'completed' | 'cancelled' | 'failed' | 'awaiting_confirmation' | 'paused_by_agent';
type ErrorResponse = {
    /**
     * Error message
     */
    error: string;
};
type BrowserSessionRecordingResponse = {
    /**
     * The URL of the browser session recording
     */
    recording_url: string;
};
/**
 * Request to execute an agent with structured parameters including optional agent profile configuration
 */
type StructuredAgentExecutionRequest = {
    /**
     * The ID of the browser profile to use
     */
    agent_profile_id?: string;
    /**
     * Dynamic data to be merged into the saved agent configuration.
     */
    dynamic_data?: {
        [key: string]: unknown;
    };
};
type AgentProfile = {
    /**
     * Unique identifier for the agent profile
     */
    id: string;
    /**
     * Name of the agent profile (unique within organization)
     */
    name: string;
    /**
     * Description of the agent profile
     */
    description: string;
    /**
     * The ID of the organization that the agent profile belongs to
     */
    organization_id: string;
    proxy_cc: CountryCode;
    proxy_type: ProxyType;
    /**
     * Whether the captcha solver is active for this profile
     */
    captcha_solver_active: boolean;
    /**
     * Whether the same IP address should be used for all executions of this profile
     */
    sticky_ip: boolean;
    /**
     * List of credentials associated with this agent profile
     */
    credentials: Array<Credential>;
    /**
     * The date and time the agent profile was created
     */
    created_at: string;
    /**
     * The last update time of the agent profile
     */
    updated_at: string;
};
type CreateAgentProfileRequest = {
    /**
     * Name of the agent profile (must be unique within organization)
     */
    name: string;
    /**
     * Description of the agent profile
     */
    description: string;
    /**
     * The ID of the organization that the agent profile belongs to
     */
    organization_id: string;
    proxy_cc: CountryCode;
    proxy_type: ProxyType;
    /**
     * Whether the captcha solver should be active for this profile
     */
    captcha_solver_active: boolean;
    /**
     * Whether the same IP address should be used for all executions of this profile
     */
    sticky_ip: boolean;
    /**
     * Optional list of credentials to create with the profile
     */
    credentials: Array<Credential>;
};
type UpdateAgentProfileRequest = {
    /**
     * The name of the agent profile
     */
    name?: string;
    /**
     * The description of the agent profile
     */
    description?: string;
    proxy_cc?: CountryCode;
    proxy_type?: ProxyType;
    /**
     * Whether the captcha solver should be active for this profile
     */
    captcha_solver_active?: boolean;
    /**
     * Whether the same IP address should be used for all executions of this profile
     */
    sticky_ip?: boolean;
    /**
     * List of credentials to add to the profile
     */
    credentials_to_add?: Array<Credential>;
    /**
     * List of credential IDs to delete from the profile
     */
    credentials_to_delete?: Array<string>;
};
/**
 * Two-letter country code for proxy location
 */
type CountryCode = 'us' | 'uk' | 'fr' | 'it' | 'jp' | 'au' | 'de' | 'fi' | 'ca';
/**
 * Type of proxy to use
 */
type ProxyType = 'residential' | 'mobile';
type Credential = {
    /**
     * The unique identifier for this credential
     */
    id?: string;
    /**
     * The credential name
     */
    name: string;
    /**
     * The encrypted credential
     */
    data: string;
    /**
     * When the credential was created
     */
    created_at?: string;
};
type GetOpenApiData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/openapi.yaml';
};
type GetOpenApiResponses = {
    /**
     * OpenAPI schema
     */
    200: unknown;
};
type UploadExecutionFilesData = {
    body: {
        /**
         * Files to upload to the execution
         */
        files?: Array<Blob | File>;
    };
    path: {
        /**
         * The ID of the execution
         */
        id: string;
    };
    query?: never;
    url: '/execution/{id}/files';
};
type UploadExecutionFilesErrors = {
    /**
     * Bad request
     */
    400: ErrorResponse;
    /**
     * Unauthorized
     */
    401: ErrorResponse;
    /**
     * Execution not found
     */
    404: ErrorResponse;
};
type UploadExecutionFilesError = UploadExecutionFilesErrors[keyof UploadExecutionFilesErrors];
type UploadExecutionFilesResponses = {
    /**
     * Files uploaded successfully
     */
    200: {
        /**
         * Success message
         */
        message?: string;
        /**
         * IDs of the uploaded files
         */
        file_ids?: Array<string>;
    };
};
type UploadExecutionFilesResponse = UploadExecutionFilesResponses[keyof UploadExecutionFilesResponses];
type HealthCheckData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/health';
};
type HealthCheckErrors = {
    /**
     * API is unhealthy
     */
    500: {
        /**
         * The error message
         */
        error?: string;
    };
};
type HealthCheckError = HealthCheckErrors[keyof HealthCheckErrors];
type HealthCheckResponses = {
    /**
     * API is healthy
     */
    200: {
        /**
         * The health status of the API
         */
        status?: string;
    };
};
type HealthCheckResponse = HealthCheckResponses[keyof HealthCheckResponses];
type ExecuteAgentData = {
    body: AgentExecutionRequest;
    path: {
        /**
         * The ID of the agent
         */
        id: string;
    };
    query?: never;
    url: '/agent/{id}';
};
type ExecuteAgentErrors = {
    /**
     * Invalid request
     */
    400: ErrorResponse;
    /**
     * Agent not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type ExecuteAgentError = ExecuteAgentErrors[keyof ExecuteAgentErrors];
type ExecuteAgentResponses = {
    /**
     * Agent execution started successfully
     */
    202: ExecutionResponse;
};
type ExecuteAgentResponse = ExecuteAgentResponses[keyof ExecuteAgentResponses];
type ExecuteAgentStructuredData = {
    body: StructuredAgentExecutionRequest;
    path: {
        /**
         * The ID of the agent
         */
        id: string;
    };
    query?: never;
    url: '/agent/{id}/execute';
};
type ExecuteAgentStructuredErrors = {
    /**
     * Invalid request
     */
    400: ErrorResponse;
    /**
     * Agent not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type ExecuteAgentStructuredError = ExecuteAgentStructuredErrors[keyof ExecuteAgentStructuredErrors];
type ExecuteAgentStructuredResponses = {
    /**
     * Agent execution started successfully
     */
    202: ExecutionResponse;
};
type ExecuteAgentStructuredResponse = ExecuteAgentStructuredResponses[keyof ExecuteAgentStructuredResponses];
type GetExecutionStatusData = {
    body?: never;
    path: {
        /**
         * The ID of the execution
         */
        id: string;
    };
    query?: never;
    url: '/execution/{id}/status';
};
type GetExecutionStatusErrors = {
    /**
     * Execution not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type GetExecutionStatusError = GetExecutionStatusErrors[keyof GetExecutionStatusErrors];
type GetExecutionStatusResponses = {
    /**
     * Execution status retrieved successfully
     */
    200: ExecutionStatusResponse;
};
type GetExecutionStatusResponse = GetExecutionStatusResponses[keyof GetExecutionStatusResponses];
type GetExecutionResultData = {
    body?: never;
    path: {
        /**
         * The ID of the execution
         */
        id: string;
    };
    query?: never;
    url: '/execution/{id}/result';
};
type GetExecutionResultErrors = {
    /**
     * Execution not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type GetExecutionResultError = GetExecutionResultErrors[keyof GetExecutionResultErrors];
type GetExecutionResultResponses = {
    /**
     * Execution result retrieved successfully
     */
    200: ExecutionResultResponse;
};
type GetExecutionResultResponse = GetExecutionResultResponses[keyof GetExecutionResultResponses];
type GetBrowserSessionRecordingData = {
    body?: never;
    path: {
        /**
         * The ID of the execution
         */
        id: string;
    };
    query?: never;
    url: '/execution/{id}/browser_session/recording';
};
type GetBrowserSessionRecordingErrors = {
    /**
     * Browser session not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type GetBrowserSessionRecordingError = GetBrowserSessionRecordingErrors[keyof GetBrowserSessionRecordingErrors];
type GetBrowserSessionRecordingResponses = {
    /**
     * Browser session recording retrieved successfully
     */
    200: BrowserSessionRecordingResponse;
};
type GetBrowserSessionRecordingResponse = GetBrowserSessionRecordingResponses[keyof GetBrowserSessionRecordingResponses];
type GetAgentProfilesData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * The ID of the organization to filter by
         */
        organization_id?: string;
    };
    url: '/agent-profiles';
};
type GetAgentProfilesErrors = {
    /**
     * Unauthorized - Authentication required
     */
    401: ErrorResponse;
    /**
     * Forbidden - Insufficient permissions
     */
    403: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type GetAgentProfilesError = GetAgentProfilesErrors[keyof GetAgentProfilesErrors];
type GetAgentProfilesResponses = {
    /**
     * List of agent profiles
     */
    200: Array<AgentProfile>;
};
type GetAgentProfilesResponse = GetAgentProfilesResponses[keyof GetAgentProfilesResponses];
type CreateAgentProfileData = {
    body: CreateAgentProfileRequest;
    path?: never;
    query?: never;
    url: '/agent-profiles';
};
type CreateAgentProfileErrors = {
    /**
     * Bad request - Invalid input or profile name already exists
     */
    400: ErrorResponse;
    /**
     * Unauthorized - Authentication required
     */
    401: ErrorResponse;
    /**
     * Forbidden - Insufficient permissions
     */
    403: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type CreateAgentProfileError = CreateAgentProfileErrors[keyof CreateAgentProfileErrors];
type CreateAgentProfileResponses = {
    /**
     * Agent profile created successfully
     */
    201: AgentProfile;
};
type CreateAgentProfileResponse = CreateAgentProfileResponses[keyof CreateAgentProfileResponses];
type DeleteAgentProfileData = {
    body?: never;
    path: {
        /**
         * The ID of the agent profile
         */
        profile_id: string;
    };
    query?: never;
    url: '/agent-profiles/{profile_id}';
};
type DeleteAgentProfileErrors = {
    /**
     * Unauthorized - Authentication required
     */
    401: ErrorResponse;
    /**
     * Forbidden - Insufficient permissions
     */
    403: ErrorResponse;
    /**
     * Agent profile not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type DeleteAgentProfileError = DeleteAgentProfileErrors[keyof DeleteAgentProfileErrors];
type DeleteAgentProfileResponses = {
    /**
     * Agent profile deleted successfully
     */
    200: {
        message?: string;
    };
};
type DeleteAgentProfileResponse = DeleteAgentProfileResponses[keyof DeleteAgentProfileResponses];
type GetAgentProfileData = {
    body?: never;
    path: {
        /**
         * The ID of the agent profile
         */
        profile_id: string;
    };
    query?: never;
    url: '/agent-profiles/{profile_id}';
};
type GetAgentProfileErrors = {
    /**
     * Unauthorized - Authentication required
     */
    401: ErrorResponse;
    /**
     * Forbidden - Insufficient permissions
     */
    403: ErrorResponse;
    /**
     * Agent profile not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type GetAgentProfileError = GetAgentProfileErrors[keyof GetAgentProfileErrors];
type GetAgentProfileResponses = {
    /**
     * Agent profile found
     */
    200: AgentProfile;
};
type GetAgentProfileResponse = GetAgentProfileResponses[keyof GetAgentProfileResponses];
type UpdateAgentProfileData = {
    body: UpdateAgentProfileRequest;
    path: {
        /**
         * The ID of the agent profile
         */
        profile_id: string;
    };
    query?: never;
    url: '/agent-profiles/{profile_id}';
};
type UpdateAgentProfileErrors = {
    /**
     * Bad request - Invalid input
     */
    400: ErrorResponse;
    /**
     * Unauthorized - Authentication required
     */
    401: ErrorResponse;
    /**
     * Forbidden - Insufficient permissions
     */
    403: ErrorResponse;
    /**
     * Agent profile not found
     */
    404: ErrorResponse;
    /**
     * Internal server error
     */
    500: ErrorResponse;
};
type UpdateAgentProfileError = UpdateAgentProfileErrors[keyof UpdateAgentProfileErrors];
type UpdateAgentProfileResponses = {
    /**
     * Agent profile updated successfully
     */
    200: AgentProfile;
};
type UpdateAgentProfileResponse = UpdateAgentProfileResponses[keyof UpdateAgentProfileResponses];
type GetCredentialsPublicKeyData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/credentials/public_key';
};
type GetCredentialsPublicKeyErrors = {
    /**
     * Public key not found
     */
    404: unknown;
};
type GetCredentialsPublicKeyResponses = {
    /**
     * The public key for credentials
     */
    200: string;
};
type GetCredentialsPublicKeyResponse = GetCredentialsPublicKeyResponses[keyof GetCredentialsPublicKeyResponses];
type ClientOptions$1 = {
    baseUrl: 'https://odyssey.asteroid.ai/api/v1' | `${string}://${string}/api/v1` | (string & {});
};

type types_gen$1_AgentExecutionRequest = AgentExecutionRequest;
type types_gen$1_AgentProfile = AgentProfile;
type types_gen$1_BrowserSessionRecordingResponse = BrowserSessionRecordingResponse;
type types_gen$1_CountryCode = CountryCode;
type types_gen$1_CreateAgentProfileData = CreateAgentProfileData;
type types_gen$1_CreateAgentProfileError = CreateAgentProfileError;
type types_gen$1_CreateAgentProfileErrors = CreateAgentProfileErrors;
type types_gen$1_CreateAgentProfileRequest = CreateAgentProfileRequest;
type types_gen$1_CreateAgentProfileResponse = CreateAgentProfileResponse;
type types_gen$1_CreateAgentProfileResponses = CreateAgentProfileResponses;
type types_gen$1_Credential = Credential;
type types_gen$1_DeleteAgentProfileData = DeleteAgentProfileData;
type types_gen$1_DeleteAgentProfileError = DeleteAgentProfileError;
type types_gen$1_DeleteAgentProfileErrors = DeleteAgentProfileErrors;
type types_gen$1_DeleteAgentProfileResponse = DeleteAgentProfileResponse;
type types_gen$1_DeleteAgentProfileResponses = DeleteAgentProfileResponses;
type types_gen$1_ErrorResponse = ErrorResponse;
type types_gen$1_ExecuteAgentData = ExecuteAgentData;
type types_gen$1_ExecuteAgentError = ExecuteAgentError;
type types_gen$1_ExecuteAgentErrors = ExecuteAgentErrors;
type types_gen$1_ExecuteAgentResponse = ExecuteAgentResponse;
type types_gen$1_ExecuteAgentResponses = ExecuteAgentResponses;
type types_gen$1_ExecuteAgentStructuredData = ExecuteAgentStructuredData;
type types_gen$1_ExecuteAgentStructuredError = ExecuteAgentStructuredError;
type types_gen$1_ExecuteAgentStructuredErrors = ExecuteAgentStructuredErrors;
type types_gen$1_ExecuteAgentStructuredResponse = ExecuteAgentStructuredResponse;
type types_gen$1_ExecuteAgentStructuredResponses = ExecuteAgentStructuredResponses;
type types_gen$1_ExecutionResponse = ExecutionResponse;
type types_gen$1_ExecutionResult = ExecutionResult;
type types_gen$1_ExecutionResultResponse = ExecutionResultResponse;
type types_gen$1_ExecutionStatusResponse = ExecutionStatusResponse;
type types_gen$1_GetAgentProfileData = GetAgentProfileData;
type types_gen$1_GetAgentProfileError = GetAgentProfileError;
type types_gen$1_GetAgentProfileErrors = GetAgentProfileErrors;
type types_gen$1_GetAgentProfileResponse = GetAgentProfileResponse;
type types_gen$1_GetAgentProfileResponses = GetAgentProfileResponses;
type types_gen$1_GetAgentProfilesData = GetAgentProfilesData;
type types_gen$1_GetAgentProfilesError = GetAgentProfilesError;
type types_gen$1_GetAgentProfilesErrors = GetAgentProfilesErrors;
type types_gen$1_GetAgentProfilesResponse = GetAgentProfilesResponse;
type types_gen$1_GetAgentProfilesResponses = GetAgentProfilesResponses;
type types_gen$1_GetBrowserSessionRecordingData = GetBrowserSessionRecordingData;
type types_gen$1_GetBrowserSessionRecordingError = GetBrowserSessionRecordingError;
type types_gen$1_GetBrowserSessionRecordingErrors = GetBrowserSessionRecordingErrors;
type types_gen$1_GetBrowserSessionRecordingResponse = GetBrowserSessionRecordingResponse;
type types_gen$1_GetBrowserSessionRecordingResponses = GetBrowserSessionRecordingResponses;
type types_gen$1_GetCredentialsPublicKeyData = GetCredentialsPublicKeyData;
type types_gen$1_GetCredentialsPublicKeyErrors = GetCredentialsPublicKeyErrors;
type types_gen$1_GetCredentialsPublicKeyResponse = GetCredentialsPublicKeyResponse;
type types_gen$1_GetCredentialsPublicKeyResponses = GetCredentialsPublicKeyResponses;
type types_gen$1_GetExecutionResultData = GetExecutionResultData;
type types_gen$1_GetExecutionResultError = GetExecutionResultError;
type types_gen$1_GetExecutionResultErrors = GetExecutionResultErrors;
type types_gen$1_GetExecutionResultResponse = GetExecutionResultResponse;
type types_gen$1_GetExecutionResultResponses = GetExecutionResultResponses;
type types_gen$1_GetExecutionStatusData = GetExecutionStatusData;
type types_gen$1_GetExecutionStatusError = GetExecutionStatusError;
type types_gen$1_GetExecutionStatusErrors = GetExecutionStatusErrors;
type types_gen$1_GetExecutionStatusResponse = GetExecutionStatusResponse;
type types_gen$1_GetExecutionStatusResponses = GetExecutionStatusResponses;
type types_gen$1_GetOpenApiData = GetOpenApiData;
type types_gen$1_GetOpenApiResponses = GetOpenApiResponses;
type types_gen$1_HealthCheckData = HealthCheckData;
type types_gen$1_HealthCheckError = HealthCheckError;
type types_gen$1_HealthCheckErrors = HealthCheckErrors;
type types_gen$1_HealthCheckResponse = HealthCheckResponse;
type types_gen$1_HealthCheckResponses = HealthCheckResponses;
type types_gen$1_ProxyType = ProxyType;
type types_gen$1_Status = Status;
type types_gen$1_StructuredAgentExecutionRequest = StructuredAgentExecutionRequest;
type types_gen$1_UpdateAgentProfileData = UpdateAgentProfileData;
type types_gen$1_UpdateAgentProfileError = UpdateAgentProfileError;
type types_gen$1_UpdateAgentProfileErrors = UpdateAgentProfileErrors;
type types_gen$1_UpdateAgentProfileRequest = UpdateAgentProfileRequest;
type types_gen$1_UpdateAgentProfileResponse = UpdateAgentProfileResponse;
type types_gen$1_UpdateAgentProfileResponses = UpdateAgentProfileResponses;
type types_gen$1_UploadExecutionFilesData = UploadExecutionFilesData;
type types_gen$1_UploadExecutionFilesError = UploadExecutionFilesError;
type types_gen$1_UploadExecutionFilesErrors = UploadExecutionFilesErrors;
type types_gen$1_UploadExecutionFilesResponse = UploadExecutionFilesResponse;
type types_gen$1_UploadExecutionFilesResponses = UploadExecutionFilesResponses;
declare namespace types_gen$1 {
  export type { types_gen$1_AgentExecutionRequest as AgentExecutionRequest, types_gen$1_AgentProfile as AgentProfile, types_gen$1_BrowserSessionRecordingResponse as BrowserSessionRecordingResponse, ClientOptions$1 as ClientOptions, types_gen$1_CountryCode as CountryCode, types_gen$1_CreateAgentProfileData as CreateAgentProfileData, types_gen$1_CreateAgentProfileError as CreateAgentProfileError, types_gen$1_CreateAgentProfileErrors as CreateAgentProfileErrors, types_gen$1_CreateAgentProfileRequest as CreateAgentProfileRequest, types_gen$1_CreateAgentProfileResponse as CreateAgentProfileResponse, types_gen$1_CreateAgentProfileResponses as CreateAgentProfileResponses, types_gen$1_Credential as Credential, types_gen$1_DeleteAgentProfileData as DeleteAgentProfileData, types_gen$1_DeleteAgentProfileError as DeleteAgentProfileError, types_gen$1_DeleteAgentProfileErrors as DeleteAgentProfileErrors, types_gen$1_DeleteAgentProfileResponse as DeleteAgentProfileResponse, types_gen$1_DeleteAgentProfileResponses as DeleteAgentProfileResponses, types_gen$1_ErrorResponse as ErrorResponse, types_gen$1_ExecuteAgentData as ExecuteAgentData, types_gen$1_ExecuteAgentError as ExecuteAgentError, types_gen$1_ExecuteAgentErrors as ExecuteAgentErrors, types_gen$1_ExecuteAgentResponse as ExecuteAgentResponse, types_gen$1_ExecuteAgentResponses as ExecuteAgentResponses, types_gen$1_ExecuteAgentStructuredData as ExecuteAgentStructuredData, types_gen$1_ExecuteAgentStructuredError as ExecuteAgentStructuredError, types_gen$1_ExecuteAgentStructuredErrors as ExecuteAgentStructuredErrors, types_gen$1_ExecuteAgentStructuredResponse as ExecuteAgentStructuredResponse, types_gen$1_ExecuteAgentStructuredResponses as ExecuteAgentStructuredResponses, types_gen$1_ExecutionResponse as ExecutionResponse, types_gen$1_ExecutionResult as ExecutionResult, types_gen$1_ExecutionResultResponse as ExecutionResultResponse, types_gen$1_ExecutionStatusResponse as ExecutionStatusResponse, types_gen$1_GetAgentProfileData as GetAgentProfileData, types_gen$1_GetAgentProfileError as GetAgentProfileError, types_gen$1_GetAgentProfileErrors as GetAgentProfileErrors, types_gen$1_GetAgentProfileResponse as GetAgentProfileResponse, types_gen$1_GetAgentProfileResponses as GetAgentProfileResponses, types_gen$1_GetAgentProfilesData as GetAgentProfilesData, types_gen$1_GetAgentProfilesError as GetAgentProfilesError, types_gen$1_GetAgentProfilesErrors as GetAgentProfilesErrors, types_gen$1_GetAgentProfilesResponse as GetAgentProfilesResponse, types_gen$1_GetAgentProfilesResponses as GetAgentProfilesResponses, types_gen$1_GetBrowserSessionRecordingData as GetBrowserSessionRecordingData, types_gen$1_GetBrowserSessionRecordingError as GetBrowserSessionRecordingError, types_gen$1_GetBrowserSessionRecordingErrors as GetBrowserSessionRecordingErrors, types_gen$1_GetBrowserSessionRecordingResponse as GetBrowserSessionRecordingResponse, types_gen$1_GetBrowserSessionRecordingResponses as GetBrowserSessionRecordingResponses, types_gen$1_GetCredentialsPublicKeyData as GetCredentialsPublicKeyData, types_gen$1_GetCredentialsPublicKeyErrors as GetCredentialsPublicKeyErrors, types_gen$1_GetCredentialsPublicKeyResponse as GetCredentialsPublicKeyResponse, types_gen$1_GetCredentialsPublicKeyResponses as GetCredentialsPublicKeyResponses, types_gen$1_GetExecutionResultData as GetExecutionResultData, types_gen$1_GetExecutionResultError as GetExecutionResultError, types_gen$1_GetExecutionResultErrors as GetExecutionResultErrors, types_gen$1_GetExecutionResultResponse as GetExecutionResultResponse, types_gen$1_GetExecutionResultResponses as GetExecutionResultResponses, types_gen$1_GetExecutionStatusData as GetExecutionStatusData, types_gen$1_GetExecutionStatusError as GetExecutionStatusError, types_gen$1_GetExecutionStatusErrors as GetExecutionStatusErrors, types_gen$1_GetExecutionStatusResponse as GetExecutionStatusResponse, types_gen$1_GetExecutionStatusResponses as GetExecutionStatusResponses, types_gen$1_GetOpenApiData as GetOpenApiData, types_gen$1_GetOpenApiResponses as GetOpenApiResponses, types_gen$1_HealthCheckData as HealthCheckData, types_gen$1_HealthCheckError as HealthCheckError, types_gen$1_HealthCheckErrors as HealthCheckErrors, types_gen$1_HealthCheckResponse as HealthCheckResponse, types_gen$1_HealthCheckResponses as HealthCheckResponses, types_gen$1_ProxyType as ProxyType, types_gen$1_Status as Status, types_gen$1_StructuredAgentExecutionRequest as StructuredAgentExecutionRequest, types_gen$1_UpdateAgentProfileData as UpdateAgentProfileData, types_gen$1_UpdateAgentProfileError as UpdateAgentProfileError, types_gen$1_UpdateAgentProfileErrors as UpdateAgentProfileErrors, types_gen$1_UpdateAgentProfileRequest as UpdateAgentProfileRequest, types_gen$1_UpdateAgentProfileResponse as UpdateAgentProfileResponse, types_gen$1_UpdateAgentProfileResponses as UpdateAgentProfileResponses, types_gen$1_UploadExecutionFilesData as UploadExecutionFilesData, types_gen$1_UploadExecutionFilesError as UploadExecutionFilesError, types_gen$1_UploadExecutionFilesErrors as UploadExecutionFilesErrors, types_gen$1_UploadExecutionFilesResponse as UploadExecutionFilesResponse, types_gen$1_UploadExecutionFilesResponses as UploadExecutionFilesResponses };
}

type ActivityPayloadUnionActionCompleted = {
    activityType: 'action_completed';
    data: ExecutionActivityActionCompletedPayload;
};
type ActivityPayloadUnionActionFailed = {
    activityType: 'action_failed';
    data: ExecutionActivityActionFailedPayload;
};
type ActivityPayloadUnionActionStarted = {
    activityType: 'action_started';
    data: ExecutionActivityActionStartedPayload;
};
type ActivityPayloadUnionGeneric = {
    activityType: 'generic';
    data: ExecutionActivityGenericPayload;
};
type ActivityPayloadUnionStatusChanged = {
    activityType: 'status_changed';
    data: ExecutionActivityStatusChangedPayload;
};
type ActivityPayloadUnionStepCompleted = {
    activityType: 'step_completed';
    data: ExecutionActivityStepCompletedPayload;
};
type ActivityPayloadUnionStepStarted = {
    activityType: 'step_started';
    data: ExecutionActivityStepStartedPayload;
};
type ActivityPayloadUnionTerminal = {
    activityType: 'terminal';
    data: ExecutionTerminalPayload;
};
type ActivityPayloadUnionTransitionedNode = {
    activityType: 'transitioned_node';
    data: ExecutionActivityTransitionedNodePayload;
};
type ActivityPayloadUnionUserMessageReceived = {
    activityType: 'user_message_received';
    data: ExecutionActivityUserMessageReceivedPayload;
};
type _Error = {
    code: number;
    message: string;
};
type ExecutionActivity = {
    id: Uuid;
    payload: ExecutionActivityPayloadUnion;
    executionId: Uuid;
    timestamp: string;
};
type ExecutionActivityActionCompletedPayload = {
    message: string;
};
type ExecutionActivityActionFailedPayload = {
    message: string;
};
type ExecutionActivityActionStartedPayload = {
    message: string;
};
type ExecutionActivityGenericPayload = {
    message: string;
};
type ExecutionActivityPayloadUnion = ({
    activityType: 'terminal';
} & ActivityPayloadUnionTerminal) | ({
    activityType: 'generic';
} & ActivityPayloadUnionGeneric) | ({
    activityType: 'step_started';
} & ActivityPayloadUnionStepStarted) | ({
    activityType: 'step_completed';
} & ActivityPayloadUnionStepCompleted) | ({
    activityType: 'transitioned_node';
} & ActivityPayloadUnionTransitionedNode) | ({
    activityType: 'status_changed';
} & ActivityPayloadUnionStatusChanged) | ({
    activityType: 'action_started';
} & ActivityPayloadUnionActionStarted) | ({
    activityType: 'action_completed';
} & ActivityPayloadUnionActionCompleted) | ({
    activityType: 'action_failed';
} & ActivityPayloadUnionActionFailed) | ({
    activityType: 'user_message_received';
} & ActivityPayloadUnionUserMessageReceived);
type ExecutionActivityStatusChangedPayload = {
    status: ExecutionStatus;
};
type ExecutionActivityStepCompletedPayload = {
    stepNumber: number;
};
type ExecutionActivityStepStartedPayload = {
    stepNumber: number;
};
type ExecutionActivityTransitionedNodePayload = {
    newNodeUUID: Uuid;
    newNodeName: string;
};
type ExecutionActivityUserMessageReceivedPayload = {
    message: string;
    userUUID: Uuid;
};
type ExecutionStatus = 'starting' | 'running' | 'paused' | 'awaiting_confirmation' | 'completed' | 'cancelled' | 'failed' | 'paused_by_agent';
type ExecutionTerminalPayload = {
    reason: 'unsubscribe' | 'complete' | 'error';
    message?: string;
};
type ExecutionUserMessagesAddTextBody = {
    message: string;
};
type FilePart = Blob | File;
type Versions = 'frontend' | 'v2';
type Uuid = string;
type ActivitiesGetData = {
    body?: never;
    path: {
        /**
         * The unique identifier of the execution
         */
        executionId: Uuid;
    };
    query?: {
        /**
         * Sort order for activities by timestamp
         */
        order?: 'asc' | 'desc';
        /**
         * Maximum number of activities to return
         */
        limit?: number;
    };
    url: '/executions/{executionId}/activities';
};
type ActivitiesGetErrors = {
    /**
     * An unexpected error response.
     */
    default: _Error;
};
type ActivitiesGetError = ActivitiesGetErrors[keyof ActivitiesGetErrors];
type ActivitiesGetResponses = {
    /**
     * The request has succeeded.
     */
    200: Array<ExecutionActivity>;
};
type ActivitiesGetResponse = ActivitiesGetResponses[keyof ActivitiesGetResponses];
type UserMessagesAddData = {
    /**
     * The message content to send
     */
    body: ExecutionUserMessagesAddTextBody;
    path: {
        /**
         * The unique identifier of the execution
         */
        executionId: Uuid;
    };
    query?: never;
    url: '/executions/{executionId}/user-messages';
};
type UserMessagesAddErrors = {
    /**
     * An unexpected error response.
     */
    default: _Error;
};
type UserMessagesAddError = UserMessagesAddErrors[keyof UserMessagesAddErrors];
type UserMessagesAddResponses = {
    /**
     * The request has succeeded and a new resource has been created as a result.
     */
    201: 'User message added.';
};
type UserMessagesAddResponse = UserMessagesAddResponses[keyof UserMessagesAddResponses];
type ClientOptions = {
    baseUrl: 'https://odyssey.asteroid.ai/agents/{version}' | (string & {});
};

type types_gen_ActivitiesGetData = ActivitiesGetData;
type types_gen_ActivitiesGetError = ActivitiesGetError;
type types_gen_ActivitiesGetErrors = ActivitiesGetErrors;
type types_gen_ActivitiesGetResponse = ActivitiesGetResponse;
type types_gen_ActivitiesGetResponses = ActivitiesGetResponses;
type types_gen_ActivityPayloadUnionActionCompleted = ActivityPayloadUnionActionCompleted;
type types_gen_ActivityPayloadUnionActionFailed = ActivityPayloadUnionActionFailed;
type types_gen_ActivityPayloadUnionActionStarted = ActivityPayloadUnionActionStarted;
type types_gen_ActivityPayloadUnionGeneric = ActivityPayloadUnionGeneric;
type types_gen_ActivityPayloadUnionStatusChanged = ActivityPayloadUnionStatusChanged;
type types_gen_ActivityPayloadUnionStepCompleted = ActivityPayloadUnionStepCompleted;
type types_gen_ActivityPayloadUnionStepStarted = ActivityPayloadUnionStepStarted;
type types_gen_ActivityPayloadUnionTerminal = ActivityPayloadUnionTerminal;
type types_gen_ActivityPayloadUnionTransitionedNode = ActivityPayloadUnionTransitionedNode;
type types_gen_ActivityPayloadUnionUserMessageReceived = ActivityPayloadUnionUserMessageReceived;
type types_gen_ClientOptions = ClientOptions;
type types_gen_ExecutionActivity = ExecutionActivity;
type types_gen_ExecutionActivityActionCompletedPayload = ExecutionActivityActionCompletedPayload;
type types_gen_ExecutionActivityActionFailedPayload = ExecutionActivityActionFailedPayload;
type types_gen_ExecutionActivityActionStartedPayload = ExecutionActivityActionStartedPayload;
type types_gen_ExecutionActivityGenericPayload = ExecutionActivityGenericPayload;
type types_gen_ExecutionActivityPayloadUnion = ExecutionActivityPayloadUnion;
type types_gen_ExecutionActivityStatusChangedPayload = ExecutionActivityStatusChangedPayload;
type types_gen_ExecutionActivityStepCompletedPayload = ExecutionActivityStepCompletedPayload;
type types_gen_ExecutionActivityStepStartedPayload = ExecutionActivityStepStartedPayload;
type types_gen_ExecutionActivityTransitionedNodePayload = ExecutionActivityTransitionedNodePayload;
type types_gen_ExecutionActivityUserMessageReceivedPayload = ExecutionActivityUserMessageReceivedPayload;
type types_gen_ExecutionStatus = ExecutionStatus;
type types_gen_ExecutionTerminalPayload = ExecutionTerminalPayload;
type types_gen_ExecutionUserMessagesAddTextBody = ExecutionUserMessagesAddTextBody;
type types_gen_FilePart = FilePart;
type types_gen_UserMessagesAddData = UserMessagesAddData;
type types_gen_UserMessagesAddError = UserMessagesAddError;
type types_gen_UserMessagesAddErrors = UserMessagesAddErrors;
type types_gen_UserMessagesAddResponse = UserMessagesAddResponse;
type types_gen_UserMessagesAddResponses = UserMessagesAddResponses;
type types_gen_Uuid = Uuid;
type types_gen_Versions = Versions;
type types_gen__Error = _Error;
declare namespace types_gen {
  export type { types_gen_ActivitiesGetData as ActivitiesGetData, types_gen_ActivitiesGetError as ActivitiesGetError, types_gen_ActivitiesGetErrors as ActivitiesGetErrors, types_gen_ActivitiesGetResponse as ActivitiesGetResponse, types_gen_ActivitiesGetResponses as ActivitiesGetResponses, types_gen_ActivityPayloadUnionActionCompleted as ActivityPayloadUnionActionCompleted, types_gen_ActivityPayloadUnionActionFailed as ActivityPayloadUnionActionFailed, types_gen_ActivityPayloadUnionActionStarted as ActivityPayloadUnionActionStarted, types_gen_ActivityPayloadUnionGeneric as ActivityPayloadUnionGeneric, types_gen_ActivityPayloadUnionStatusChanged as ActivityPayloadUnionStatusChanged, types_gen_ActivityPayloadUnionStepCompleted as ActivityPayloadUnionStepCompleted, types_gen_ActivityPayloadUnionStepStarted as ActivityPayloadUnionStepStarted, types_gen_ActivityPayloadUnionTerminal as ActivityPayloadUnionTerminal, types_gen_ActivityPayloadUnionTransitionedNode as ActivityPayloadUnionTransitionedNode, types_gen_ActivityPayloadUnionUserMessageReceived as ActivityPayloadUnionUserMessageReceived, types_gen_ClientOptions as ClientOptions, types_gen_ExecutionActivity as ExecutionActivity, types_gen_ExecutionActivityActionCompletedPayload as ExecutionActivityActionCompletedPayload, types_gen_ExecutionActivityActionFailedPayload as ExecutionActivityActionFailedPayload, types_gen_ExecutionActivityActionStartedPayload as ExecutionActivityActionStartedPayload, types_gen_ExecutionActivityGenericPayload as ExecutionActivityGenericPayload, types_gen_ExecutionActivityPayloadUnion as ExecutionActivityPayloadUnion, types_gen_ExecutionActivityStatusChangedPayload as ExecutionActivityStatusChangedPayload, types_gen_ExecutionActivityStepCompletedPayload as ExecutionActivityStepCompletedPayload, types_gen_ExecutionActivityStepStartedPayload as ExecutionActivityStepStartedPayload, types_gen_ExecutionActivityTransitionedNodePayload as ExecutionActivityTransitionedNodePayload, types_gen_ExecutionActivityUserMessageReceivedPayload as ExecutionActivityUserMessageReceivedPayload, types_gen_ExecutionStatus as ExecutionStatus, types_gen_ExecutionTerminalPayload as ExecutionTerminalPayload, types_gen_ExecutionUserMessagesAddTextBody as ExecutionUserMessagesAddTextBody, types_gen_FilePart as FilePart, types_gen_UserMessagesAddData as UserMessagesAddData, types_gen_UserMessagesAddError as UserMessagesAddError, types_gen_UserMessagesAddErrors as UserMessagesAddErrors, types_gen_UserMessagesAddResponse as UserMessagesAddResponse, types_gen_UserMessagesAddResponses as UserMessagesAddResponses, types_gen_Uuid as Uuid, types_gen_Versions as Versions, types_gen__Error as _Error };
}

type Options$1<TData extends TDataShape$1 = TDataShape$1, ThrowOnError extends boolean = boolean> = Options$3<TData, ThrowOnError> & {
    /**
     * You can provide a client instance returned by `createClient()` instead of
     * individual options. This might be also useful if you want to implement a
     * custom client.
     */
    client?: Client$2;
    /**
     * You can pass arbitrary values through the `meta` object. This can be
     * used to access values that aren't defined as part of the SDK function.
     */
    meta?: Record<string, unknown>;
};
/**
 * Retrieve execution activities
 * Get activities for an execution
 */
declare const activitiesGet: <ThrowOnError extends boolean = false>(options: Options$1<ActivitiesGetData, ThrowOnError>) => RequestResult$1<ActivitiesGetResponses, ActivitiesGetErrors, ThrowOnError, "fields">;
/**
 * Send user message to execution
 * Add a user message to an execution
 */
declare const userMessagesAdd: <ThrowOnError extends boolean = false>(options: Options$1<UserMessagesAddData, ThrowOnError>) => RequestResult$1<UserMessagesAddResponses, UserMessagesAddErrors, ThrowOnError, "fields">;

declare const sdk_gen$1_activitiesGet: typeof activitiesGet;
declare const sdk_gen$1_userMessagesAdd: typeof userMessagesAdd;
declare namespace sdk_gen$1 {
  export { type Options$1 as Options, sdk_gen$1_activitiesGet as activitiesGet, sdk_gen$1_userMessagesAdd as userMessagesAdd };
}

type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options$2<TData, ThrowOnError> & {
    /**
     * You can provide a client instance returned by `createClient()` instead of
     * individual options. This might be also useful if you want to implement a
     * custom client.
     */
    client?: Client;
    /**
     * You can pass arbitrary values through the `meta` object. This can be
     * used to access values that aren't defined as part of the SDK function.
     */
    meta?: Record<string, unknown>;
};
/**
 * Get the OpenAPI schema
 */
declare const getOpenApi: <ThrowOnError extends boolean = false>(options?: Options<GetOpenApiData, ThrowOnError>) => RequestResult<GetOpenApiResponses, unknown, ThrowOnError, "fields">;
/**
 * Upload files to an execution
 */
declare const uploadExecutionFiles$1: <ThrowOnError extends boolean = false>(options: Options<UploadExecutionFilesData, ThrowOnError>) => RequestResult<UploadExecutionFilesResponses, UploadExecutionFilesErrors, ThrowOnError, "fields">;
/**
 * Check the health of the API
 */
declare const healthCheck: <ThrowOnError extends boolean = false>(options?: Options<HealthCheckData, ThrowOnError>) => RequestResult<HealthCheckResponses, HealthCheckErrors, ThrowOnError, "fields">;
/**
 * Execute an agent
 * Executes an agent with the provided parameters
 * @deprecated
 */
declare const executeAgent$1: <ThrowOnError extends boolean = false>(options: Options<ExecuteAgentData, ThrowOnError>) => RequestResult<ExecuteAgentResponses, ExecuteAgentErrors, ThrowOnError, "fields">;
/**
 * Execute an agent with structured parameters
 * Executes an agent with structured parameters including optional agent profile configuration. This is the recommended method for new integrations.
 */
declare const executeAgentStructured: <ThrowOnError extends boolean = false>(options: Options<ExecuteAgentStructuredData, ThrowOnError>) => RequestResult<ExecuteAgentStructuredResponses, ExecuteAgentStructuredErrors, ThrowOnError, "fields">;
/**
 * Get execution status
 */
declare const getExecutionStatus$1: <ThrowOnError extends boolean = false>(options: Options<GetExecutionStatusData, ThrowOnError>) => RequestResult<GetExecutionStatusResponses, GetExecutionStatusErrors, ThrowOnError, "fields">;
/**
 * Get execution result
 */
declare const getExecutionResult$1: <ThrowOnError extends boolean = false>(options: Options<GetExecutionResultData, ThrowOnError>) => RequestResult<GetExecutionResultResponses, GetExecutionResultErrors, ThrowOnError, "fields">;
/**
 * Get browser session recording
 * Retrieves the browser session recording URL for a completed execution
 */
declare const getBrowserSessionRecording$1: <ThrowOnError extends boolean = false>(options: Options<GetBrowserSessionRecordingData, ThrowOnError>) => RequestResult<GetBrowserSessionRecordingResponses, GetBrowserSessionRecordingErrors, ThrowOnError, "fields">;
/**
 * Get agent profiles
 * Returns all agent profiles for the organization. If organization_id is not provided, returns profiles for all user's organizations.
 */
declare const getAgentProfiles$1: <ThrowOnError extends boolean = false>(options?: Options<GetAgentProfilesData, ThrowOnError>) => RequestResult<GetAgentProfilesResponses, GetAgentProfilesErrors, ThrowOnError, "fields">;
/**
 * Create an agent profile
 * Creates a new agent profile for the organization
 */
declare const createAgentProfile$1: <ThrowOnError extends boolean = false>(options: Options<CreateAgentProfileData, ThrowOnError>) => RequestResult<CreateAgentProfileResponses, CreateAgentProfileErrors, ThrowOnError, "fields">;
/**
 * Delete an agent profile
 * Deletes the specified agent profile
 */
declare const deleteAgentProfile$1: <ThrowOnError extends boolean = false>(options: Options<DeleteAgentProfileData, ThrowOnError>) => RequestResult<DeleteAgentProfileResponses, DeleteAgentProfileErrors, ThrowOnError, "fields">;
/**
 * Get an agent profile by ID
 * Returns the complete agent profile including credentials
 */
declare const getAgentProfile$1: <ThrowOnError extends boolean = false>(options: Options<GetAgentProfileData, ThrowOnError>) => RequestResult<GetAgentProfileResponses, GetAgentProfileErrors, ThrowOnError, "fields">;
/**
 * Update an agent profile
 * Updates an agent profile including metadata and/or credentials
 */
declare const updateAgentProfile$1: <ThrowOnError extends boolean = false>(options: Options<UpdateAgentProfileData, ThrowOnError>) => RequestResult<UpdateAgentProfileResponses, UpdateAgentProfileErrors, ThrowOnError, "fields">;
/**
 * Get the public key for credentials
 */
declare const getCredentialsPublicKey$1: <ThrowOnError extends boolean = false>(options?: Options<GetCredentialsPublicKeyData, ThrowOnError>) => RequestResult<GetCredentialsPublicKeyResponses, GetCredentialsPublicKeyErrors, ThrowOnError, "fields">;

type sdk_gen_Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options<TData, ThrowOnError>;
declare const sdk_gen_executeAgentStructured: typeof executeAgentStructured;
declare const sdk_gen_getOpenApi: typeof getOpenApi;
declare const sdk_gen_healthCheck: typeof healthCheck;
declare namespace sdk_gen {
  export { type sdk_gen_Options as Options, createAgentProfile$1 as createAgentProfile, deleteAgentProfile$1 as deleteAgentProfile, executeAgent$1 as executeAgent, sdk_gen_executeAgentStructured as executeAgentStructured, getAgentProfile$1 as getAgentProfile, getAgentProfiles$1 as getAgentProfiles, getBrowserSessionRecording$1 as getBrowserSessionRecording, getCredentialsPublicKey$1 as getCredentialsPublicKey, getExecutionResult$1 as getExecutionResult, getExecutionStatus$1 as getExecutionStatus, sdk_gen_getOpenApi as getOpenApi, sdk_gen_healthCheck as healthCheck, updateAgentProfile$1 as updateAgentProfile, uploadExecutionFiles$1 as uploadExecutionFiles };
}

/**
 * Create an API client with a provided API key.
 *
 * @param apiKey - Your API key.
 * @returns A configured API client.
 *
 * @example
 * const client = AsteroidClient('your-api-key');
 */
declare const AsteroidClient: (apiKey: string, options?: {
    v1?: {
        baseUrl?: string;
    };
    v2?: {
        baseUrl?: string;
    };
}) => {
    agentsV1Client: Client;
    agentsV2Client: Client$2;
};
type AsteroidClient = ReturnType<typeof AsteroidClient>;
/** --- V1 --- */
/**
 * Execute an agent with parameters including optional agent profile ID.
 *
 * @param client - The API client.
 * @param agentId - The ID of the agent to execute.
 * @param executionData - The structured execution parameters.
 * @returns The execution ID.
 *
 * @example
 * const executionId = await executeAgent(client, 'my-agent-id', {
 *   agent_profile_id: 'profile-123',
 *   dynamic_data: { input: "some dynamic value" }
 * });
 */
declare const executeAgent: (client: AsteroidClient, agentId: string, executionData: StructuredAgentExecutionRequest) => Promise<string>;
/**
 * Get the current status for an execution.
 *
 * @param client - The API client.
 * @param executionId - The execution identifier.
 * @returns The execution status details.
 *
 * @example
 * const status = await getExecutionStatus(client, executionId);
 * console.log(status.status);
 */
declare const getExecutionStatus: (client: AsteroidClient, executionId: string) => Promise<ExecutionStatusResponse>;
/**
 * Get the final result of an execution.
 *
 * @param client - The API client.
 * @param executionId - The execution identifier.
 * @returns The result object of the execution.
 *
 * @example
 * const result = await getExecutionResult(client, executionId);
 * console.log(result);
 */
declare const getExecutionResult: (client: AsteroidClient, executionId: string) => Promise<Record<string, unknown>>;
/**
 * Waits for an execution to reach a terminal state and returns the result.
 * Continuously polls the execution status until it's either "completed", "cancelled", or "failed".
 *
 * @param client - The API client.
 * @param executionId - The execution identifier.
 * @param interval - Polling interval in milliseconds (default is 1000ms).
 * @returns A promise that resolves with the execution result if completed.
 * @throws An error if the execution ends as "cancelled" or "failed".
 *
 * @example
 * const result = await waitForExecutionResult(client, executionId, 2000);
 */
declare const waitForExecutionResult: (client: AsteroidClient, executionId: string, interval?: number, timeout?: number) => Promise<Record<string, unknown>>;
/**
 * Get the browser session recording URL for a completed execution.
 *
 * @param client - The API client.
 * @param executionId - The execution identifier.
 * @returns The browser session recording URL.
 *
 * @example
 * const recording = await getBrowserSessionRecording(client, executionId);
 * console.log(recording.recording_url);
 */
declare const getBrowserSessionRecording: (client: AsteroidClient, executionId: string) => Promise<BrowserSessionRecordingResponse>;
/**
 * Upload files to an execution.
 *
 * @param client - The API client.
 * @param executionId - The execution identifier.
 * @param files - Array of files to upload.
 * @returns The uploaded file IDs and success message.
 *
 * @example
 * const fileInput = document.getElementById('file-input') as HTMLInputElement;
 * const files = Array.from(fileInput.files || []);
 * const result = await uploadExecutionFiles(client, executionId, files);
 * console.log(result.file_ids);
 */
declare const uploadExecutionFiles: (client: AsteroidClient, executionId: string, files: Array<Blob | File>) => Promise<{
    message?: string;
    file_ids?: string[];
}>;
/**
 * Get agent profiles for an organization (or all organizations for the user if not specified).
 *
 * @param client - The API client.
 * @param organizationId - Optional organization ID to filter by.
 * @returns The list of agent profiles.
 *
 * @example
 * const profiles = await getAgentProfiles(client, 'org_123');
 */
declare const getAgentProfiles: (client: AsteroidClient, organizationId?: string) => Promise<AgentProfile[]>;
/**
 * Get the public key for encrypting credentials.
 *
 * @param client - The API client.
 * @returns The PEM-formatted public key.
 *
 * @example
 * const publicKey = await getCredentialsPublicKey(client);
 */
declare const getCredentialsPublicKey: (client: AsteroidClient) => Promise<string>;
/**
 * Create a new agent profile.
 *
 * @param client - The API client.
 * @param payload - The agent profile data.
 * @returns The created agent profile.
 *
 * @example
 * const profile = await createAgentProfile(client, {
 *   name: 'My Profile',
 *   description: 'Profile description',
 *   organization_id: 'org_123',
 *   proxy_cc: 'us',
 *   proxy_type: 'residential',
 *   captcha_solver_active: false,
 *   sticky_ip: false,
 *   credentials: []
 * });
 */
declare const createAgentProfile: (client: AsteroidClient, payload: CreateAgentProfileRequest) => Promise<AgentProfile>;
/**
 * Get a specific agent profile by ID.
 *
 * @param client - The API client.
 * @param profileId - The agent profile ID.
 * @returns The agent profile.
 *
 * @example
 * const profile = await getAgentProfile(client, 'profile_123');
 */
declare const getAgentProfile: (client: AsteroidClient, profileId: string) => Promise<AgentProfile>;
/**
 * Update an existing agent profile.
 *
 * @param client - The API client.
 * @param profileId - The agent profile ID.
 * @param payload - The update data.
 * @returns The updated agent profile.
 *
 * @example
 * const updated = await updateAgentProfile(client, 'profile_123', {
 *   name: 'New Name',
 *   credentials_to_add: [{ name: 'API_KEY', data: 'secret-key' }],
 *   credentials_to_delete: ['cred_456']
 * });
 */
declare const updateAgentProfile: (client: AsteroidClient, profileId: string, payload: UpdateAgentProfileRequest) => Promise<AgentProfile>;
/**
 * Delete an agent profile by ID.
 *
 * @param client - The API client.
 * @param profileId - The agent profile ID.
 * @returns A success message.
 *
 * @example
 * await deleteAgentProfile(client, 'profile_123');
 */
declare const deleteAgentProfile: (client: AsteroidClient, profileId: string) => Promise<{
    message?: string;
}>;
/** --- V2 --- */
/**
 * Get the last N execution activities for a given execution ID, sorted by their timestamp in descending order.
 *
 * @param client - The API client.
 * @param executionId - The execution identifier.
 * @param n - The number of activities to return.
 * @returns The list of execution activities.
 *
 * @example
 * const activities = await getLastNExecutionActivities(client, 'execution_123', 10);
 * console.log(activities);
 */
declare const getLastNExecutionActivities: (client: AsteroidClient, executionId: string, n: number) => Promise<ExecutionActivity[]>;
/**
 * Add a message to an execution.
 *
 * @param client - The API client.
 * @param executionId - The execution identifier.
 * @param message - The message to add.
 *
 * @example
 * await addMessageToExecution(client, 'execution_123', 'Hello, world!');
 */
declare const addMessageToExecution: (client: AsteroidClient, executionId: string, message: string) => Promise<void>;

export { sdk_gen as AgentsV1SDK, types_gen$1 as AgentsV1Types, sdk_gen$1 as AgentsV2SDK, types_gen as AgentsV2Types, AsteroidClient, addMessageToExecution, createAgentProfile, deleteAgentProfile, executeAgent, getAgentProfile, getAgentProfiles, getBrowserSessionRecording, getCredentialsPublicKey, getExecutionResult, getExecutionStatus, getLastNExecutionActivities, updateAgentProfile, uploadExecutionFiles, waitForExecutionResult };
