"""A2A Types Package - Protocol Buffer and SDK-specific types."""

# Import all proto-generated types from a2a_pb2
from a2a.types.a2a_pb2 import (
    APIKeySecurityScheme,
    AgentCapabilities,
    AgentCard,
    AgentCardSignature,
    AgentExtension,
    AgentInterface,
    AgentProvider,
    AgentSkill,
    Artifact,
    AuthenticationInfo,
    AuthorizationCodeOAuthFlow,
    CancelTaskRequest,
    ClientCredentialsOAuthFlow,
    DeleteTaskPushNotificationConfigRequest,
    DeviceCodeOAuthFlow,
    GetExtendedAgentCardRequest,
    GetTaskPushNotificationConfigRequest,
    GetTaskRequest,
    HTTPAuthSecurityScheme,
    ImplicitOAuthFlow,
    ListTaskPushNotificationConfigsRequest,
    ListTaskPushNotificationConfigsResponse,
    ListTasksRequest,
    ListTasksResponse,
    Message,
    MutualTlsSecurityScheme,
    OAuth2SecurityScheme,
    OAuthFlows,
    OpenIdConnectSecurityScheme,
    Part,
    PasswordOAuthFlow,
    Role,
    SecurityRequirement,
    SecurityScheme,
    SendMessageConfiguration,
    SendMessageRequest,
    SendMessageResponse,
    StreamResponse,
    StringList,
    SubscribeToTaskRequest,
    Task,
    TaskArtifactUpdateEvent,
    TaskPushNotificationConfig,
    TaskState,
    TaskStatus,
    TaskStatusUpdateEvent,
)

# Import SDK-specific error types from utils.errors
from a2a.utils.errors import (
    ContentTypeNotSupportedError,
    ExtendedAgentCardNotConfiguredError,
    ExtensionSupportRequiredError,
    InternalError,
    InvalidAgentResponseError,
    InvalidParamsError,
    InvalidRequestError,
    MethodNotFoundError,
    PushNotificationNotSupportedError,
    TaskNotCancelableError,
    TaskNotFoundError,
    UnsupportedOperationError,
    VersionNotSupportedError,
)


A2ARequest = (
    SendMessageRequest
    | GetTaskRequest
    | CancelTaskRequest
    | TaskPushNotificationConfig
    | GetTaskPushNotificationConfigRequest
    | SubscribeToTaskRequest
    | GetExtendedAgentCardRequest
    | ListTaskPushNotificationConfigsRequest
)


__all__ = [
    # SDK-specific types from extras
    'A2ARequest',
    # Proto types
    'APIKeySecurityScheme',
    'AgentCapabilities',
    'AgentCard',
    'AgentCardSignature',
    'AgentExtension',
    'AgentInterface',
    'AgentProvider',
    'AgentSkill',
    'Artifact',
    'AuthenticationInfo',
    'AuthorizationCodeOAuthFlow',
    'CancelTaskRequest',
    'ClientCredentialsOAuthFlow',
    'ContentTypeNotSupportedError',
    'DeleteTaskPushNotificationConfigRequest',
    'DeviceCodeOAuthFlow',
    'ExtendedAgentCardNotConfiguredError',
    'ExtensionSupportRequiredError',
    'GetExtendedAgentCardRequest',
    'GetTaskPushNotificationConfigRequest',
    'GetTaskRequest',
    'HTTPAuthSecurityScheme',
    'ImplicitOAuthFlow',
    'InternalError',
    'InvalidAgentResponseError',
    'InvalidParamsError',
    'InvalidRequestError',
    'ListTaskPushNotificationConfigsRequest',
    'ListTaskPushNotificationConfigsResponse',
    'ListTasksRequest',
    'ListTasksResponse',
    'Message',
    'MethodNotFoundError',
    'MutualTlsSecurityScheme',
    'OAuth2SecurityScheme',
    'OAuthFlows',
    'OpenIdConnectSecurityScheme',
    'Part',
    'PasswordOAuthFlow',
    'PushNotificationNotSupportedError',
    'Role',
    'SecurityRequirement',
    'SecurityScheme',
    'SendMessageConfiguration',
    'SendMessageRequest',
    'SendMessageResponse',
    'StreamResponse',
    'StringList',
    'SubscribeToTaskRequest',
    'Task',
    'TaskArtifactUpdateEvent',
    'TaskNotCancelableError',
    'TaskNotFoundError',
    'TaskPushNotificationConfig',
    'TaskState',
    'TaskStatus',
    'TaskStatusUpdateEvent',
    'UnsupportedOperationError',
    'VersionNotSupportedError',
]
