"""GunSpec SDK type definitions — models, params, and errors."""

from gunspec.types.errors import APIErrorResponse as APIErrorResponse
from gunspec.types.errors import ErrorDetail as ErrorDetail
from gunspec.types.models import ActionTypeStats as ActionTypeStats
from gunspec.types.models import AdoptionByCountryItem as AdoptionByCountryItem
from gunspec.types.models import AdoptionByTypeItem as AdoptionByTypeItem
from gunspec.types.models import AdoptionMap as AdoptionMap
from gunspec.types.models import AdoptionMapCountry as AdoptionMapCountry
from gunspec.types.models import AdoptionMapUser as AdoptionMapUser
from gunspec.types.models import Ammunition as Ammunition
from gunspec.types.models import BalanceDeviation as BalanceDeviation
from gunspec.types.models import BalanceEntry as BalanceEntry
from gunspec.types.models import BalanceReport as BalanceReport
from gunspec.types.models import BallisticProfile as BallisticProfile
from gunspec.types.models import BallisticProfileAmmo as BallisticProfileAmmo
from gunspec.types.models import BallisticsResult as BallisticsResult
from gunspec.types.models import Caliber as Caliber
from gunspec.types.models import CaliberBallistics as CaliberBallistics
from gunspec.types.models import CaliberBallisticsCaliber as CaliberBallisticsCaliber
from gunspec.types.models import CaliberComparison as CaliberComparison
from gunspec.types.models import CaliberFamily as CaliberFamily
from gunspec.types.models import (
    CaliberPopularityByEra as CaliberPopularityByEra,
)
from gunspec.types.models import (
    CaliberPopularityByEraCaliberEntry as CaliberPopularityByEraCaliberEntry,
)
from gunspec.types.models import Category as Category
from gunspec.types.models import CategoryStats as CategoryStats
from gunspec.types.models import ConfidenceEntry as ConfidenceEntry
from gunspec.types.models import Conflict as Conflict
from gunspec.types.models import ConflictFirearm as ConflictFirearm
from gunspec.types.models import Country as Country
from gunspec.types.models import CountryArsenal as CountryArsenal
from gunspec.types.models import CountryArsenalGroup as CountryArsenalGroup
from gunspec.types.models import DataCoverage as DataCoverage
from gunspec.types.models import DataReport as DataReport
from gunspec.types.models import Dimensions as Dimensions
from gunspec.types.models import DimensionsImperial as DimensionsImperial
from gunspec.types.models import DimensionsMetric as DimensionsMetric
from gunspec.types.models import EraStats as EraStats
from gunspec.types.models import FamilyTree as FamilyTree
from gunspec.types.models import Favorite as Favorite
from gunspec.types.models import FavoriteToggle as FavoriteToggle
from gunspec.types.models import FeatureFrequency as FeatureFrequency
from gunspec.types.models import FieldCoverage as FieldCoverage
from gunspec.types.models import FilterOptionCategory as FilterOptionCategory
from gunspec.types.models import FilterOptionItem as FilterOptionItem
from gunspec.types.models import FilterOptions as FilterOptions
from gunspec.types.models import Firearm as Firearm
from gunspec.types.models import FirearmCaliberEntry as FirearmCaliberEntry
from gunspec.types.models import FirearmCalculation as FirearmCalculation
from gunspec.types.models import FirearmCalculationAmmo as FirearmCalculationAmmo
from gunspec.types.models import (
    FirearmCalculationCalculated as FirearmCalculationCalculated,
)
from gunspec.types.models import FirearmCalculationDelta as FirearmCalculationDelta
from gunspec.types.models import (
    FirearmCalculationFirearm as FirearmCalculationFirearm,
)
from gunspec.types.models import (
    FirearmCalculationSourceReported as FirearmCalculationSourceReported,
)
from gunspec.types.models import FirearmComparison as FirearmComparison
from gunspec.types.models import FirearmDetail as FirearmDetail
from gunspec.types.models import FirearmImage as FirearmImage
from gunspec.types.models import FirearmListItem as FirearmListItem
from gunspec.types.models import FirearmLoadProfile as FirearmLoadProfile
from gunspec.types.models import FirearmLoadProfileAmmo as FirearmLoadProfileAmmo
from gunspec.types.models import (
    FirearmLoadProfileCalculated as FirearmLoadProfileCalculated,
)
from gunspec.types.models import (
    FirearmLoadProfileSourceReported as FirearmLoadProfileSourceReported,
)
from gunspec.types.models import FirearmUser as FirearmUser
from gunspec.types.models import FirearmVariant as FirearmVariant
from gunspec.types.models import GameMetaItem as GameMetaItem
from gunspec.types.models import GameProfile as GameProfile
from gunspec.types.models import GameStats as GameStats
from gunspec.types.models import GameStatsSnapshotEntry as GameStatsSnapshotEntry
from gunspec.types.models import GameStatsVersion as GameStatsVersion
from gunspec.types.models import HeadToHead as HeadToHead
from gunspec.types.models import HeadToHeadVerdict as HeadToHeadVerdict
from gunspec.types.models import ManufacturerStats as ManufacturerStats
from gunspec.types.models import (
    ManufacturerStatsAggregates as ManufacturerStatsAggregates,
)
from gunspec.types.models import (
    ManufacturerStatsCategory as ManufacturerStatsCategory,
)
from gunspec.types.models import (
    ManufacturerStatsManufacturer as ManufacturerStatsManufacturer,
)
from gunspec.types.models import ManufacturerTimeline as ManufacturerTimeline
from gunspec.types.models import (
    ManufacturerTimelineFirearm as ManufacturerTimelineFirearm,
)
from gunspec.types.models import (
    ManufacturerTimelineYear as ManufacturerTimelineYear,
)
from gunspec.types.models import Manufacturer as Manufacturer
from gunspec.types.models import MatchupFirearm as MatchupFirearm
from gunspec.types.models import MatchupResult as MatchupResult
from gunspec.types.models import MaterialStats as MaterialStats
from gunspec.types.models import MaterialStatsEntry as MaterialStatsEntry
from gunspec.types.models import PaginatedResponseModel as PaginatedResponseModel
from gunspec.types.models import PaginationMeta as PaginationMeta
from gunspec.types.models import PopularCaliber as PopularCaliber
from gunspec.types.models import PowerRating as PowerRating
from gunspec.types.models import PowerRatingBreakdown as PowerRatingBreakdown
from gunspec.types.models import ProductionStatusItem as ProductionStatusItem
from gunspec.types.models import ProlificManufacturer as ProlificManufacturer
from gunspec.types.models import RoleRoster as RoleRoster
from gunspec.types.models import RoleRosterItem as RoleRosterItem
from gunspec.types.models import Silhouette as Silhouette
from gunspec.types.models import SimilarFirearm as SimilarFirearm
from gunspec.types.models import StatDistribution as StatDistribution
from gunspec.types.models import (
    StatDistributionHistogramBucket as StatDistributionHistogramBucket,
)
from gunspec.types.models import (
    StatDistributionPercentiles as StatDistributionPercentiles,
)
from gunspec.types.models import StatsSummary as StatsSummary
from gunspec.types.models import SuccessResponseModel as SuccessResponseModel
from gunspec.types.models import SupportTicket as SupportTicket
from gunspec.types.models import SupportTicketDetail as SupportTicketDetail
from gunspec.types.models import SupportTicketReply as SupportTicketReply
from gunspec.types.models import TerminalBallistics as TerminalBallistics
from gunspec.types.models import TierItem as TierItem
from gunspec.types.models import TierList as TierList
from gunspec.types.models import TierListTiers as TierListTiers
from gunspec.types.models import TimelineItem as TimelineItem
from gunspec.types.models import TopFirearmItem as TopFirearmItem
from gunspec.types.models import TrajectoryPoint as TrajectoryPoint
from gunspec.types.models import UsageStats as UsageStats
from gunspec.types.models import UsageStatsCurrentMonth as UsageStatsCurrentMonth
from gunspec.types.models import UsageStatsDailyEntry as UsageStatsDailyEntry
from gunspec.types.models import UsageStatsPerKeyEntry as UsageStatsPerKeyEntry
from gunspec.types.models import UsageStatsTier as UsageStatsTier
from gunspec.types.models import WebhookEndpoint as WebhookEndpoint
from gunspec.types.models import WebhookTestResult as WebhookTestResult
from gunspec.types.params import ActionTypesParams as ActionTypesParams
from gunspec.types.params import AdoptionByCountryParams as AdoptionByCountryParams
from gunspec.types.params import AdoptionByTypeParams as AdoptionByTypeParams
from gunspec.types.params import AmmunitionBallisticsParams as AmmunitionBallisticsParams
from gunspec.types.params import BalanceReportParams as BalanceReportParams
from gunspec.types.params import ByActionParams as ByActionParams
from gunspec.types.params import ByConflictParams as ByConflictParams
from gunspec.types.params import ByDesignerParams as ByDesignerParams
from gunspec.types.params import ByEraParams as ByEraParams
from gunspec.types.params import ByFeatureParams as ByFeatureParams
from gunspec.types.params import ByMaterialParams as ByMaterialParams
from gunspec.types.params import (
    CalculateBallisticsParams as CalculateBallisticsParams,
)
from gunspec.types.params import CaliberBallisticsParams as CaliberBallisticsParams
from gunspec.types.params import (
    CaliberPopularityByEraParams as CaliberPopularityByEraParams,
)
from gunspec.types.params import CompareCalibersParams as CompareCalibersParams
from gunspec.types.params import CompareFirearmsParams as CompareFirearmsParams
from gunspec.types.params import ConfidenceParams as ConfidenceParams
from gunspec.types.params import ConflictNameQuery as ConflictNameQuery
from gunspec.types.params import CountryCodeParam as CountryCodeParam
from gunspec.types.params import CreateReplyParams as CreateReplyParams
from gunspec.types.params import CreateReportParams as CreateReportParams
from gunspec.types.params import CreateTicketParams as CreateTicketParams
from gunspec.types.params import (
    CreateWebhookEndpointParams as CreateWebhookEndpointParams,
)
from gunspec.types.params import FeatureFrequencyParams as FeatureFrequencyParams
from gunspec.types.params import GameMetaParams as GameMetaParams
from gunspec.types.params import HeadToHeadParams as HeadToHeadParams
from gunspec.types.params import ListAmmunitionParams as ListAmmunitionParams
from gunspec.types.params import ListCalibersParams as ListCalibersParams
from gunspec.types.params import ListFavoritesParams as ListFavoritesParams
from gunspec.types.params import ListFirearmsParams as ListFirearmsParams
from gunspec.types.params import ListManufacturersParams as ListManufacturersParams
from gunspec.types.params import ListReportsParams as ListReportsParams
from gunspec.types.params import (
    ListSnapshotFirearmsParams as ListSnapshotFirearmsParams,
)
from gunspec.types.params import ListTicketsParams as ListTicketsParams
from gunspec.types.params import (
    ListWebhookEndpointsParams as ListWebhookEndpointsParams,
)
from gunspec.types.params import LoadFirearmParams as LoadFirearmParams
from gunspec.types.params import MatchupsParams as MatchupsParams
from gunspec.types.params import PaginationParams as PaginationParams
from gunspec.types.params import PopularCalibersParams as PopularCalibersParams
from gunspec.types.params import PowerRatingParams as PowerRatingParams
from gunspec.types.params import (
    ProlificManufacturersParams as ProlificManufacturersParams,
)
from gunspec.types.params import RandomFirearmParams as RandomFirearmParams
from gunspec.types.params import RoleRosterParams as RoleRosterParams
from gunspec.types.params import SearchFirearmsParams as SearchFirearmsParams
from gunspec.types.params import SilhouetteParams as SilhouetteParams
from gunspec.types.params import StatDistributionParams as StatDistributionParams
from gunspec.types.params import TierListParams as TierListParams
from gunspec.types.params import TimelineParams as TimelineParams
from gunspec.types.params import TopFirearmsParams as TopFirearmsParams
from gunspec.types.params import (
    UpdateWebhookEndpointParams as UpdateWebhookEndpointParams,
)
from gunspec.types.params import UsageParams as UsageParams

__all__ = [
    # Errors
    "APIErrorResponse",
    "ErrorDetail",
    # Models — Firearms
    "Firearm",
    "FirearmListItem",
    "FirearmCaliberEntry",
    "FirearmDetail",
    "FirearmVariant",
    # Models — Manufacturers
    "Manufacturer",
    "ManufacturerStats",
    "ManufacturerStatsManufacturer",
    "ManufacturerStatsAggregates",
    "ManufacturerStatsCategory",
    "ManufacturerTimeline",
    "ManufacturerTimelineFirearm",
    "ManufacturerTimelineYear",
    # Models — Calibers
    "Caliber",
    "CaliberBallistics",
    "CaliberBallisticsCaliber",
    "CaliberFamily",
    # Models — Ammunition
    "Ammunition",
    "TrajectoryPoint",
    "TerminalBallistics",
    "BallisticProfile",
    "BallisticProfileAmmo",
    "FirearmCalculation",
    "FirearmCalculationFirearm",
    "FirearmCalculationAmmo",
    "FirearmCalculationCalculated",
    "FirearmCalculationSourceReported",
    "FirearmCalculationDelta",
    "FirearmLoadProfile",
    "FirearmLoadProfileAmmo",
    "FirearmLoadProfileCalculated",
    "FirearmLoadProfileSourceReported",
    # Models — Categories
    "Category",
    # Models — Images & Users
    "FirearmImage",
    "FirearmUser",
    # Models — Game Stats
    "GameStats",
    "GameProfile",
    "GameMetaItem",
    # Models — Game Endpoints
    "BalanceDeviation",
    "BalanceEntry",
    "TierItem",
    "TierList",
    "TierListTiers",
    "MatchupFirearm",
    "MatchupResult",
    "RoleRosterItem",
    "StatDistribution",
    "StatDistributionPercentiles",
    "StatDistributionHistogramBucket",
    # Models — Game Stats Snapshots
    "GameStatsVersion",
    "GameStatsSnapshotEntry",
    # Models — Comparisons
    "FirearmComparison",
    "CaliberComparison",
    "HeadToHead",
    "HeadToHeadVerdict",
    # Models — Family Tree
    "FamilyTree",
    # Models — Similar
    "SimilarFirearm",
    # Models — Adoption
    "AdoptionMap",
    "AdoptionMapCountry",
    "AdoptionMapUser",
    # Models — Top / Power / Timeline
    "TopFirearmItem",
    "PowerRating",
    "PowerRatingBreakdown",
    "TimelineItem",
    # Models — Dimensions
    "Dimensions",
    "DimensionsMetric",
    "DimensionsImperial",
    # Models — Filter Options
    "FilterOptions",
    "FilterOptionCategory",
    "FilterOptionItem",
    # Models — Statistics
    "StatsSummary",
    "ProductionStatusItem",
    "FieldCoverage",
    "PopularCaliber",
    "ProlificManufacturer",
    "CategoryStats",
    "EraStats",
    "MaterialStats",
    "MaterialStatsEntry",
    "AdoptionByCountryItem",
    "AdoptionByTypeItem",
    "ActionTypeStats",
    "FeatureFrequency",
    "CaliberPopularityByEra",
    "CaliberPopularityByEraCaliberEntry",
    # Models — Countries & Conflicts
    "Country",
    "CountryArsenal",
    "CountryArsenalGroup",
    "Conflict",
    "ConflictFirearm",
    # Models — Data Quality
    "DataCoverage",
    "ConfidenceEntry",
    # Models — Ballistics & Silhouette
    "BallisticsResult",
    "Silhouette",
    # Models — Balance & Roster
    "BalanceReport",
    "RoleRoster",
    # Models — User Resources
    "Favorite",
    "FavoriteToggle",
    "DataReport",
    "SupportTicket",
    "SupportTicketDetail",
    "SupportTicketReply",
    "WebhookEndpoint",
    "WebhookTestResult",
    "UsageStats",
    "UsageStatsCurrentMonth",
    "UsageStatsDailyEntry",
    "UsageStatsPerKeyEntry",
    "UsageStatsTier",
    # Models — Response Wrappers
    "PaginatedResponseModel",
    "PaginationMeta",
    "SuccessResponseModel",
    # Params
    "PaginationParams",
    "ListFirearmsParams",
    "SearchFirearmsParams",
    "CompareFirearmsParams",
    "GameMetaParams",
    "RandomFirearmParams",
    "TopFirearmsParams",
    "HeadToHeadParams",
    "ByFeatureParams",
    "ByActionParams",
    "ByMaterialParams",
    "ByDesignerParams",
    "PowerRatingParams",
    "TimelineParams",
    "ByConflictParams",
    "CalculateBallisticsParams",
    "LoadFirearmParams",
    "ListManufacturersParams",
    "ListCalibersParams",
    "CompareCalibersParams",
    "CaliberBallisticsParams",
    "ListAmmunitionParams",
    "AmmunitionBallisticsParams",
    "PopularCalibersParams",
    "ProlificManufacturersParams",
    "ByEraParams",
    "AdoptionByCountryParams",
    "AdoptionByTypeParams",
    "ActionTypesParams",
    "FeatureFrequencyParams",
    "CaliberPopularityByEraParams",
    "BalanceReportParams",
    "TierListParams",
    "MatchupsParams",
    "RoleRosterParams",
    "StatDistributionParams",
    "ListSnapshotFirearmsParams",
    "CountryCodeParam",
    "ConflictNameQuery",
    "ConfidenceParams",
    "SilhouetteParams",
    "ListFavoritesParams",
    "CreateReportParams",
    "ListReportsParams",
    "CreateTicketParams",
    "ListTicketsParams",
    "CreateReplyParams",
    "CreateWebhookEndpointParams",
    "UpdateWebhookEndpointParams",
    "ListWebhookEndpointsParams",
    "UsageParams",
]
