import type { MessageSendParams, TaskQueryParams, TaskIdParams, AgentCard } from '@mastra/core/a2a';
import type { Agent } from '@mastra/core/agent';
import type { IMastraLogger } from '@mastra/core/logger';
import type { RequestContext } from '@mastra/core/request-context';
import { z } from 'zod';
import type { InMemoryTaskStore } from '../a2a/store.js';
import type { Context } from '../types.js';
export declare function getAgentCardByIdHandler({ mastra, agentId, executionUrl, provider, version, requestContext, }: Context & {
    requestContext: RequestContext;
    agentId: keyof ReturnType<typeof mastra.listAgents>;
    executionUrl?: string;
    version?: string;
    provider?: {
        organization: string;
        url: string;
    };
}): Promise<AgentCard>;
export declare function handleMessageSend({ requestId, params, taskStore, agent, agentId, logger, requestContext, }: {
    requestId: string;
    params: MessageSendParams;
    taskStore: InMemoryTaskStore;
    agent: Agent;
    agentId: string;
    logger?: IMastraLogger;
    requestContext: RequestContext;
}): Promise<import("@mastra/core/a2a").JSONRPCResponse<null, unknown> | import("@mastra/core/a2a").JSONRPCResponse<import("@a2a-js/sdk").Task, unknown>>;
export declare function handleTaskGet({ requestId, taskStore, agentId, taskId, }: {
    requestId: string;
    taskStore: InMemoryTaskStore;
    agentId: string;
    taskId: string;
}): Promise<import("@mastra/core/a2a").JSONRPCResponse<import("@a2a-js/sdk").Task, unknown>>;
export declare function handleMessageStream({ requestId, params, taskStore, agent, agentId, logger, requestContext, }: {
    requestId: string;
    params: MessageSendParams;
    taskStore: InMemoryTaskStore;
    agent: Agent;
    agentId: string;
    logger?: IMastraLogger;
    requestContext: RequestContext;
}): AsyncGenerator<import("@mastra/core/a2a").JSONRPCResponse<null, unknown> | import("@mastra/core/a2a").JSONRPCResponse<import("@a2a-js/sdk").Task, unknown> | import("@mastra/core/a2a").JSONRPCResponse<{
    state: string;
    message: {
        messageId: `${string}-${string}-${string}-${string}-${string}`;
        kind: string;
        role: string;
        parts: {
            kind: string;
            text: string;
        }[];
    };
}, unknown>, void, unknown>;
export declare function handleTaskCancel({ requestId, taskStore, agentId, taskId, logger, }: {
    requestId: string;
    taskStore: InMemoryTaskStore;
    agentId: string;
    taskId: string;
    logger?: IMastraLogger;
}): Promise<import("@mastra/core/a2a").JSONRPCResponse<import("@a2a-js/sdk").Task, unknown>>;
export declare function getAgentExecutionHandler({ requestId, mastra, agentId, requestContext, method, params, taskStore, logger, }: Context & {
    requestId: string;
    requestContext: RequestContext;
    agentId: string;
    method: 'message/send' | 'message/stream' | 'tasks/get' | 'tasks/cancel';
    params: MessageSendParams | TaskQueryParams | TaskIdParams;
    taskStore: InMemoryTaskStore;
    logger?: IMastraLogger;
}): Promise<any>;
export declare const GET_AGENT_CARD_ROUTE: import("../server-adapter").ServerRoute<{
    agentId: string;
}, {
    name: string;
    description: string;
    url: string;
    version: string;
    capabilities: {
        streaming?: boolean | undefined;
        pushNotifications?: boolean | undefined;
        stateTransitionHistory?: boolean | undefined;
    };
    defaultInputModes: string[];
    defaultOutputModes: string[];
    skills: {
        id: string;
        name: string;
        description: string;
        tags?: string[] | undefined;
    }[];
    provider?: {
        organization: string;
        url: string;
    } | undefined;
}, "json", import("../server-adapter").RouteSchemas<z.ZodObject<{
    agentId: z.ZodString;
}, z.core.$strip>, undefined, undefined, z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    url: z.ZodString;
    provider: z.ZodOptional<z.ZodObject<{
        organization: z.ZodString;
        url: z.ZodString;
    }, z.core.$strip>>;
    version: z.ZodString;
    capabilities: z.ZodObject<{
        streaming: z.ZodOptional<z.ZodBoolean>;
        pushNotifications: z.ZodOptional<z.ZodBoolean>;
        stateTransitionHistory: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>;
    defaultInputModes: z.ZodArray<z.ZodString>;
    defaultOutputModes: z.ZodArray<z.ZodString>;
    skills: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        description: z.ZodString;
        tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>;
}, z.core.$strip>>, "GET", "/.well-known/:agentId/agent-card.json">;
export declare const AGENT_EXECUTION_ROUTE: import("../server-adapter").ServerRoute<import("../server-adapter").InferParams<z.ZodObject<{
    agentId: z.ZodString;
}, z.core.$strip>, undefined, z.ZodObject<{
    jsonrpc: z.ZodLiteral<"2.0">;
    id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
    method: z.ZodEnum<{
        "message/send": "message/send";
        "message/stream": "message/stream";
        "tasks/get": "tasks/get";
        "tasks/cancel": "tasks/cancel";
    }>;
    params: z.ZodUnion<readonly [z.ZodObject<{
        message: z.ZodObject<{
            kind: z.ZodLiteral<"message">;
            messageId: z.ZodString;
            role: z.ZodEnum<{
                user: "user";
                agent: "agent";
            }>;
            parts: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
                kind: z.ZodLiteral<"text">;
                text: z.ZodString;
                metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>, z.ZodObject<{
                kind: z.ZodLiteral<"file">;
                file: z.ZodUnion<readonly [z.ZodObject<{
                    bytes: z.ZodString;
                    mimeType: z.ZodOptional<z.ZodString>;
                    name: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>, z.ZodObject<{
                    uri: z.ZodString;
                    mimeType: z.ZodOptional<z.ZodString>;
                    name: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>]>;
                metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>, z.ZodObject<{
                kind: z.ZodLiteral<"data">;
                data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>;
            contextId: z.ZodOptional<z.ZodString>;
            taskId: z.ZodOptional<z.ZodString>;
            referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
            extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
            metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        }, z.core.$strip>;
        configuration: z.ZodOptional<z.ZodObject<{
            acceptedOutputModes: z.ZodArray<z.ZodString>;
            blocking: z.ZodOptional<z.ZodBoolean>;
            historyLength: z.ZodOptional<z.ZodNumber>;
            pushNotificationConfig: z.ZodOptional<z.ZodObject<{
                url: z.ZodString;
                id: z.ZodOptional<z.ZodString>;
                token: z.ZodOptional<z.ZodString>;
                authentication: z.ZodOptional<z.ZodObject<{
                    schemes: z.ZodArray<z.ZodString>;
                    credentials: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>, z.ZodObject<{
        id: z.ZodString;
        historyLength: z.ZodOptional<z.ZodNumber>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>, z.ZodObject<{
        id: z.ZodString;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>]>;
}, z.core.$strip>>, unknown, "json", import("../server-adapter").RouteSchemas<z.ZodObject<{
    agentId: z.ZodString;
}, z.core.$strip>, undefined, z.ZodObject<{
    jsonrpc: z.ZodLiteral<"2.0">;
    id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
    method: z.ZodEnum<{
        "message/send": "message/send";
        "message/stream": "message/stream";
        "tasks/get": "tasks/get";
        "tasks/cancel": "tasks/cancel";
    }>;
    params: z.ZodUnion<readonly [z.ZodObject<{
        message: z.ZodObject<{
            kind: z.ZodLiteral<"message">;
            messageId: z.ZodString;
            role: z.ZodEnum<{
                user: "user";
                agent: "agent";
            }>;
            parts: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
                kind: z.ZodLiteral<"text">;
                text: z.ZodString;
                metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>, z.ZodObject<{
                kind: z.ZodLiteral<"file">;
                file: z.ZodUnion<readonly [z.ZodObject<{
                    bytes: z.ZodString;
                    mimeType: z.ZodOptional<z.ZodString>;
                    name: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>, z.ZodObject<{
                    uri: z.ZodString;
                    mimeType: z.ZodOptional<z.ZodString>;
                    name: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>]>;
                metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>, z.ZodObject<{
                kind: z.ZodLiteral<"data">;
                data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
                metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
            }, z.core.$strip>]>>;
            contextId: z.ZodOptional<z.ZodString>;
            taskId: z.ZodOptional<z.ZodString>;
            referenceTaskIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
            extensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
            metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
        }, z.core.$strip>;
        configuration: z.ZodOptional<z.ZodObject<{
            acceptedOutputModes: z.ZodArray<z.ZodString>;
            blocking: z.ZodOptional<z.ZodBoolean>;
            historyLength: z.ZodOptional<z.ZodNumber>;
            pushNotificationConfig: z.ZodOptional<z.ZodObject<{
                url: z.ZodString;
                id: z.ZodOptional<z.ZodString>;
                token: z.ZodOptional<z.ZodString>;
                authentication: z.ZodOptional<z.ZodObject<{
                    schemes: z.ZodArray<z.ZodString>;
                    credentials: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>>;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>, z.ZodObject<{
        id: z.ZodString;
        historyLength: z.ZodOptional<z.ZodNumber>;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>, z.ZodObject<{
        id: z.ZodString;
        metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    }, z.core.$strip>]>;
}, z.core.$strip>, z.ZodUnknown>, "POST", "/a2a/:agentId">;
//# sourceMappingURL=a2a.d.ts.map