/**
 * Action event data types — discriminated union for state machine data.
 *
 * 39-variant discriminated union across 3 action kinds (request_response,
 * remote_notification, local_call). Each variant narrows the data shape
 * by kind, phase, and step.
 *
 * @module
 */
import { z } from 'zod';
import { JsonrpcRequest, JsonrpcResponseOrError, JsonrpcNotification, JsonrpcErrorObject } from '../http/jsonrpc.js';
import { ActionExecutor } from './action_event_types.js';
export declare const ActionEventData: z.ZodObject<{
    kind: z.ZodEnum<{
        request_response: "request_response";
        remote_notification: "remote_notification";
        local_call: "local_call";
    }>;
    phase: z.ZodEnum<{
        send_request: "send_request";
        receive_request: "receive_request";
        send_response: "send_response";
        receive_response: "receive_response";
        send_error: "send_error";
        receive_error: "receive_error";
        send: "send";
        receive: "receive";
        execute: "execute";
    }>;
    step: z.ZodEnum<{
        initial: "initial";
        parsed: "parsed";
        handling: "handling";
        handled: "handled";
        failed: "failed";
    }>;
    method: z.ZodString;
    executor: z.ZodEnum<{
        frontend: "frontend";
        backend: "backend";
    }>;
    input: z.ZodNullable<z.ZodUnknown>;
    output: z.ZodNullable<z.ZodUnknown>;
    error: z.ZodNullable<z.ZodObject<{
        code: z.ZodUnion<readonly [z.ZodLiteral<-32700>, z.ZodLiteral<-32600>, z.ZodLiteral<-32601>, z.ZodLiteral<-32602>, z.ZodLiteral<-32603>, z.core.$ZodBranded<z.ZodNumber, "JsonrpcServerErrorCode", "out">]>;
        message: z.ZodString;
        data: z.ZodOptional<z.ZodUnknown>;
    }, z.core.$loose>>;
    progress: z.ZodNullable<z.ZodUnknown>;
    request: z.ZodNullable<z.ZodObject<{
        jsonrpc: z.ZodLiteral<"2.0">;
        id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
        method: z.ZodString;
        params: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
    }, z.core.$loose>>;
    response: z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
        jsonrpc: z.ZodLiteral<"2.0">;
        id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
        result: z.ZodJSONSchema;
    }, z.core.$loose>, z.ZodObject<{
        jsonrpc: z.ZodLiteral<"2.0">;
        id: z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
        error: z.ZodObject<{
            code: z.ZodUnion<readonly [z.ZodLiteral<-32700>, z.ZodLiteral<-32600>, z.ZodLiteral<-32601>, z.ZodLiteral<-32602>, z.ZodLiteral<-32603>, z.core.$ZodBranded<z.ZodNumber, "JsonrpcServerErrorCode", "out">]>;
            message: z.ZodString;
            data: z.ZodOptional<z.ZodUnknown>;
        }, z.core.$loose>;
    }, z.core.$loose>]>>;
    notification: z.ZodNullable<z.ZodObject<{
        jsonrpc: z.ZodLiteral<"2.0">;
        method: z.ZodString;
        params: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
    }, z.core.$loose>>;
}, z.core.$strict>;
export type ActionEventData = z.infer<typeof ActionEventData>;
export type ActionEventRequestResponseData<TMethod extends string = string, TInput = unknown, TOutput = unknown> = {
    kind: 'request_response';
    phase: 'send_request';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_request';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_request';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_request';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_request';
    step: 'failed';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest | null;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_request';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: null;
    progress: null;
    request: JsonrpcRequest;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_request';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: null;
    request: JsonrpcRequest;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_request';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_request';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_request';
    step: 'failed';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_response';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: null;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_response';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: null;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_response';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_response';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_response';
    step: 'failed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput | null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_response';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: unknown;
    error: null;
    progress: null;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_response';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: null;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_response';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_response';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_response';
    step: 'failed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput | null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_error';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: JsonrpcErrorObject;
    progress: null;
    request: JsonrpcRequest | null;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_error';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: JsonrpcErrorObject;
    progress: null;
    request: JsonrpcRequest | null;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_error';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest | null;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'send_error';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest | null;
    response: null;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_error';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: JsonrpcErrorObject;
    progress: null;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_error';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: JsonrpcErrorObject;
    progress: null;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_error';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
} | {
    kind: 'request_response';
    phase: 'receive_error';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: JsonrpcRequest;
    response: JsonrpcResponseOrError;
    notification: null;
};
export type ActionEventRemoteNotificationData<TMethod extends string = string, TInput = unknown> = {
    kind: 'remote_notification';
    phase: 'send';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'remote_notification';
    phase: 'send';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'remote_notification';
    phase: 'send';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: null;
    response: null;
    notification: JsonrpcNotification;
} | {
    kind: 'remote_notification';
    phase: 'send';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: null;
    response: null;
    notification: JsonrpcNotification;
} | {
    kind: 'remote_notification';
    phase: 'send';
    step: 'failed';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: null;
    response: null;
    notification: JsonrpcNotification | null;
} | {
    kind: 'remote_notification';
    phase: 'receive';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: JsonrpcNotification;
} | {
    kind: 'remote_notification';
    phase: 'receive';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: JsonrpcNotification;
} | {
    kind: 'remote_notification';
    phase: 'receive';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: null;
    response: null;
    notification: JsonrpcNotification;
} | {
    kind: 'remote_notification';
    phase: 'receive';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: null;
    response: null;
    notification: JsonrpcNotification;
} | {
    kind: 'remote_notification';
    phase: 'receive';
    step: 'failed';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: null;
    response: null;
    notification: JsonrpcNotification;
};
export type ActionEventLocalCallData<TMethod extends string = string, TInput = unknown, TOutput = unknown> = {
    kind: 'local_call';
    phase: 'execute';
    step: 'initial';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'local_call';
    phase: 'execute';
    step: 'parsed';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: null;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'local_call';
    phase: 'execute';
    step: 'handling';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: null;
    error: null;
    progress: unknown;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'local_call';
    phase: 'execute';
    step: 'handled';
    method: TMethod;
    executor: ActionExecutor;
    input: TInput;
    output: TOutput;
    error: null;
    progress: unknown;
    request: null;
    response: null;
    notification: null;
} | {
    kind: 'local_call';
    phase: 'execute';
    step: 'failed';
    method: TMethod;
    executor: ActionExecutor;
    input: unknown;
    output: null;
    error: JsonrpcErrorObject;
    progress: unknown;
    request: null;
    response: null;
    notification: null;
};
export type ActionEventDataUnion<TMethod extends string = string, TInput = unknown, TOutput = unknown> = ActionEventRequestResponseData<TMethod, TInput, TOutput> | ActionEventRemoteNotificationData<TMethod, TInput> | ActionEventLocalCallData<TMethod, TInput, TOutput>;
//# sourceMappingURL=action_event_data.d.ts.map