from __future__ import annotations

"""Type definitions for AdCP client.

This module provides the public API for AdCP types. All types are imported from
the stable API layer which provides consistent naming regardless of internal
schema evolution.

**IMPORTANT**: Never import directly from adcp.types.generated_poc. Always use
adcp.types or adcp.types.stable for stable, versioned types.
"""

# Import all semantic aliases from aliases module
from adcp.types.aliases import (
    # Activation responses
    ActivateSignalErrorResponse,
    ActivateSignalSuccessResponse,
    # Agent deployment aliases
    AgentDeployment,
    AgentDestination,
    # Authorized agent variants
    AuthorizedAgent,
    AuthorizedAgentsByInlineProperties,
    AuthorizedAgentsByPropertyId,
    AuthorizedAgentsByPropertyTag,
    AuthorizedAgentsByPublisherProperties,
    # Preview/render aliases
    BothPreviewRender,
    # Build creative responses
    BuildCreativeErrorResponse,
    BuildCreativeSuccessResponse,
    # Create media buy responses
    CreateMediaBuyErrorResponse,
    CreateMediaBuySuccessResponse,
    # Deployment union
    Deployment,
    # Destination union
    Destination,
    # Preview renders
    HtmlPreviewRender,
    # Asset aliases
    InlineDaastAsset,
    InlineVastAsset,
    # SubAsset aliases
    MediaSubAsset,
    # Platform deployment
    PlatformDeployment,
    PlatformDestination,
    # Preview requests
    PreviewCreativeFormatRequest,
    PreviewCreativeInteractiveResponse,
    PreviewCreativeManifestRequest,
    PreviewCreativeStaticResponse,
    # Property types
    PropertyId,
    PropertyIdActivationKey,
    PropertyTag,
    PropertyTagActivationKey,
    # Performance feedback
    ProvidePerformanceFeedbackErrorResponse,
    ProvidePerformanceFeedbackSuccessResponse,
    # Publisher properties variants
    PublisherProperties,
    PublisherPropertiesAll,
    PublisherPropertiesById,
    PublisherPropertiesByTag,
    # Sync creatives
    SyncCreativesErrorResponse,
    SyncCreativesSuccessResponse,
    # Text assets
    TextSubAsset,
    # Update media buy
    UpdateMediaBuyErrorResponse,
    UpdateMediaBuyPackagesRequest,
    UpdateMediaBuyPropertiesRequest,
    UpdateMediaBuySuccessResponse,
    # URL assets
    UrlDaastAsset,
    UrlPreviewRender,
    UrlVastAsset,
)

# Import base types
from adcp.types.base import AdCPBaseModel

# Import core types (non-generated)
from adcp.types.core import (
    Activity,
    ActivityType,
    AgentConfig,
    DebugInfo,
    Protocol,
    TaskResult,
    WebhookMetadata,
)
from adcp.types.core import (
    TaskStatus as CoreTaskStatus,
)

# Import all stable public API types
from adcp.types.stable import (
    Action,
    ActivateSignalRequest,
    ActivateSignalResponse,
    AggregatedTotals,
    Asset,
    AssetSelectors,
    AssetsRequired,
    AssetType,
    AssignedPackage,
    Assignments,
    AudioAsset,
    Authentication,
    AuthorizedAgents,
    AuthorizedSalesAgents,
    AvailableMetric,
    AvailableReportingFrequency,
    BrandManifest,
    BuildCreativeRequest,
    BuildCreativeResponse,
    ByPackageItem,
    Capability,
    CatalogType,
    CoBranding,
    Colors,
    Contact,
    Country,
    CpcPricingOption,
    CpcvPricingOption,
    CpmAuctionPricingOption,
    CpmFixedRatePricingOption,
    CppPricingOption,
    CpvPricingOption,
    CreateMediaBuyRequest,
    CreateMediaBuyResponse,
    Creative,
    CreativeAgent,
    CreativeAsset,
    CreativeAssignment,
    CreativeManifest,
    CreativePolicy,
    CreativeStatus,
    CssAsset,
    DaastVersion,
    DailyBreakdownItem,
    DeliverTo,
    DeliveryMeasurement,
    DeliveryMetrics,
    DeliveryType,
    Details,
    Direction,
    Disclaimer,
    Domain,
    DomainBreakdown,
    DoohMetrics,
    Embedding,
    Error,
    FeedbackSource,
    FeedFormat,
    FieldModel,
    Filters,
    FlatRatePricingOption,
    Fonts,
    Format,
    FormatCard,
    FormatCardDetailed,
    FormatId,
    FormatType,
    FrequencyCap,
    FrequencyCapScope,
    GeoCountryAnyOfItem,
    GetMediaBuyDeliveryRequest,
    GetMediaBuyDeliveryResponse,
    GetProductsRequest,
    GetProductsResponse,
    GetSignalsRequest,
    GetSignalsResponse,
    HistoryItem,
    HtmlAsset,
    Identifier,
    ImageAsset,
    Input,
    JavascriptAsset,
    LandingPage,
    ListAuthorizedPropertiesRequest,
    ListAuthorizedPropertiesResponse,
    ListCreativeFormatsRequest,
    ListCreativeFormatsResponse,
    ListCreativesRequest,
    ListCreativesResponse,
    Logo,
    MarkdownAsset,
    MarkdownFlavor,
    Measurement,
    MeasurementPeriod,
    MediaBuy,
    MediaBuyDelivery,
    MediaBuyStatus,
    Metadata,
    Method,
    MetricType,
    ModuleType,
    NotificationType,
    Offering,
    OutputFormat,
    Pacing,
    Package,
    PackageRequest,
    Packages,
    PackageStatus,
    Pagination,
    Parameters,
    Performance,
    PerformanceFeedback,
    Placement,
    Preview,
    PreviewCreativeRequest,
    PreviewCreativeResponse,
    PreviewRender,
    PriceGuidance,
    Pricing,
    PricingModel,
    PrimaryCountry,
    Product,
    ProductCard,
    ProductCardDetailed,
    ProductCatalog,
    Progress,
    PromotedOfferings,
    PromotedProducts,
    Property,
    PropertyIdentifierTypes,
    PropertyType,
    ProtocolEnvelope,
    ProtocolResponse,
    ProvidePerformanceFeedbackRequest,
    ProvidePerformanceFeedbackResponse,
    PublisherDomain,
    PublisherIdentifierTypes,
    PushNotificationConfig,
    QuartileData,
    QuerySummary,
    Render,
    ReportingCapabilities,
    ReportingFrequency,
    ReportingPeriod,
    ReportingWebhook,
    Request,
    RequestedMetric,
    Response,
    ResponseType,
    Responsive,
    Results,
    Scheme,
    Security,
    Signal,
    SignalType,
    Sort,
    SortApplied,
    StandardFormatIds,
    Status,
    StatusFilter,
    StatusFilterEnum,
    StatusSummary,
    SyncCreativesRequest,
    SyncCreativesResponse,
    Tag,
    Tags,
    TargetingOverlay,
    Task,
    TasksGetRequest,
    TasksGetResponse,
    TasksListRequest,
    TasksListResponse,
    TaskType,
    TextAsset,
    Totals,
    TrackingEvent,
    Type,
    Unit,
    UpdateFrequency,
    UpdateMediaBuyRequest,
    UpdateMediaBuyResponse,
    UrlAsset,
    UrlType,
    ValidationMode,
    VastVersion,
    VcpmAuctionPricingOption,
    VcpmFixedRatePricingOption,
    VenueBreakdownItem,
    VideoAsset,
    ViewThreshold,
    WebhookAsset,
    WebhookPayload,
)
from adcp.types.stable import (
    TaskStatus as GeneratedTaskStatus,
)

# Note: CoreTaskStatus is for internal task tracking
# GeneratedTaskStatus from AdCP schema is available via adcp.types.stable
# We export CoreTaskStatus as "TaskStatus" for backward compatibility
TaskStatus = CoreTaskStatus

__all__ = [
    # Base types
    "AdCPBaseModel",
    "AgentConfig",
    "Protocol",
    "TaskResult",
    "TaskStatus",
    "GeneratedTaskStatus",
    "WebhookMetadata",
    "Activity",
    "ActivityType",
    "DebugInfo",
    # All stable types
    "Action",
    "ActivateSignalErrorResponse",
    "ActivateSignalRequest",
    "ActivateSignalResponse",
    "ActivateSignalSuccessResponse",
    "AgentDeployment",
    "AgentDestination",
    "AggregatedTotals",
    "Asset",
    "AssetSelectors",
    "AssetType",
    "AssetsRequired",
    "AssignedPackage",
    "Assignments",
    "AudioAsset",
    "Authentication",
    "AuthorizedAgent",
    "AuthorizedAgents",
    "AuthorizedAgentsByInlineProperties",
    "AuthorizedAgentsByPropertyId",
    "AuthorizedAgentsByPropertyTag",
    "AuthorizedAgentsByPublisherProperties",
    "AuthorizedSalesAgents",
    "AvailableMetric",
    "AvailableReportingFrequency",
    "BothPreviewRender",
    "BrandManifest",
    "BuildCreativeErrorResponse",
    "BuildCreativeRequest",
    "BuildCreativeResponse",
    "BuildCreativeSuccessResponse",
    "ByPackageItem",
    "Capability",
    "CatalogType",
    "CoBranding",
    "Colors",
    "Contact",
    "Country",
    "CpcPricingOption",
    "CpcvPricingOption",
    "CpmAuctionPricingOption",
    "CpmFixedRatePricingOption",
    "CppPricingOption",
    "CpvPricingOption",
    "CreateMediaBuyErrorResponse",
    "CreateMediaBuyRequest",
    "CreateMediaBuyResponse",
    "CreateMediaBuySuccessResponse",
    "Creative",
    "CreativeAgent",
    "CreativeAsset",
    "CreativeAssignment",
    "CreativeManifest",
    "CreativePolicy",
    "CreativeStatus",
    "CssAsset",
    "DaastVersion",
    "DailyBreakdownItem",
    "DeliverTo",
    "DeliveryMeasurement",
    "DeliveryMetrics",
    "DeliveryType",
    "Deployment",
    "Destination",
    "Details",
    "Direction",
    "Disclaimer",
    "Domain",
    "DomainBreakdown",
    "DoohMetrics",
    "Embedding",
    "Error",
    "FeedFormat",
    "FeedbackSource",
    "FieldModel",
    "Filters",
    "FlatRatePricingOption",
    "Fonts",
    "Format",
    "FormatCard",
    "FormatCardDetailed",
    "FormatId",
    "FormatType",
    "FrequencyCap",
    "FrequencyCapScope",
    "GeoCountryAnyOfItem",
    "GetMediaBuyDeliveryRequest",
    "GetMediaBuyDeliveryResponse",
    "GetProductsRequest",
    "GetProductsResponse",
    "GetSignalsRequest",
    "GetSignalsResponse",
    "HistoryItem",
    "HtmlAsset",
    "HtmlPreviewRender",
    "Identifier",
    "ImageAsset",
    "InlineDaastAsset",
    "InlineVastAsset",
    "Input",
    "JavascriptAsset",
    "LandingPage",
    "ListAuthorizedPropertiesRequest",
    "ListAuthorizedPropertiesResponse",
    "ListCreativeFormatsRequest",
    "ListCreativeFormatsResponse",
    "ListCreativesRequest",
    "ListCreativesResponse",
    "Logo",
    "MarkdownAsset",
    "MarkdownFlavor",
    "Measurement",
    "MeasurementPeriod",
    "MediaBuy",
    "MediaBuyDelivery",
    "MediaBuyStatus",
    "MediaSubAsset",
    "Metadata",
    "Method",
    "MetricType",
    "ModuleType",
    "NotificationType",
    "Offering",
    "OutputFormat",
    "Pacing",
    "Package",
    "PackageRequest",
    "PackageStatus",
    "Packages",
    "Pagination",
    "Parameters",
    "Performance",
    "PerformanceFeedback",
    "Placement",
    "PlatformDeployment",
    "PlatformDestination",
    "Preview",
    "PreviewCreativeFormatRequest",
    "PreviewCreativeInteractiveResponse",
    "PreviewCreativeManifestRequest",
    "PreviewCreativeRequest",
    "PreviewCreativeResponse",
    "PreviewCreativeStaticResponse",
    "PreviewRender",
    "PriceGuidance",
    "Pricing",
    "PricingModel",
    "PrimaryCountry",
    "Product",
    "ProductCard",
    "ProductCardDetailed",
    "ProductCatalog",
    "Progress",
    "PromotedOfferings",
    "PromotedProducts",
    "Property",
    "PropertyId",
    "PropertyIdActivationKey",
    "PropertyIdentifierTypes",
    "PropertyTag",
    "PropertyTagActivationKey",
    "PropertyType",
    "ProtocolEnvelope",
    "ProtocolResponse",
    "ProvidePerformanceFeedbackErrorResponse",
    "ProvidePerformanceFeedbackRequest",
    "ProvidePerformanceFeedbackResponse",
    "ProvidePerformanceFeedbackSuccessResponse",
    "PublisherDomain",
    "PublisherIdentifierTypes",
    "PublisherProperties",
    "PublisherPropertiesAll",
    "PublisherPropertiesById",
    "PublisherPropertiesByTag",
    "PushNotificationConfig",
    "QuartileData",
    "QuerySummary",
    "Render",
    "ReportingCapabilities",
    "ReportingFrequency",
    "ReportingPeriod",
    "ReportingWebhook",
    "Request",
    "RequestedMetric",
    "Response",
    "ResponseType",
    "Responsive",
    "Results",
    "Scheme",
    "Security",
    "Signal",
    "SignalType",
    "Sort",
    "SortApplied",
    "StandardFormatIds",
    "Status",
    "StatusFilter",
    "StatusFilterEnum",
    "StatusSummary",
    "SyncCreativesErrorResponse",
    "SyncCreativesRequest",
    "SyncCreativesResponse",
    "SyncCreativesSuccessResponse",
    "Tag",
    "Tags",
    "TargetingOverlay",
    "Task",
    "TaskType",
    "TasksGetRequest",
    "TasksGetResponse",
    "TasksListRequest",
    "TasksListResponse",
    "TextAsset",
    "TextSubAsset",
    "Totals",
    "TrackingEvent",
    "Type",
    "Unit",
    "UpdateFrequency",
    "UpdateMediaBuyErrorResponse",
    "UpdateMediaBuyPackagesRequest",
    "UpdateMediaBuyPropertiesRequest",
    "UpdateMediaBuyRequest",
    "UpdateMediaBuyResponse",
    "UpdateMediaBuySuccessResponse",
    "UrlAsset",
    "UrlDaastAsset",
    "UrlPreviewRender",
    "UrlType",
    "UrlVastAsset",
    "ValidationMode",
    "VastVersion",
    "VcpmAuctionPricingOption",
    "VcpmFixedRatePricingOption",
    "VenueBreakdownItem",
    "VideoAsset",
    "ViewThreshold",
    "WebhookAsset",
    "WebhookPayload",
]
