# @generated by mypy-protobuf.  Do not edit manually!
import sys
from typing import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
    Text as typing___Text,
)

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    FileDescriptor as google___protobuf___descriptor___FileDescriptor,
)
from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer as google___protobuf___internal___containers___RepeatedScalarFieldContainer,
)
from google.protobuf.message import Message as google___protobuf___message___Message
from google.protobuf.wrappers_pb2 import (
    BoolValue as google___protobuf___wrappers_pb2___BoolValue,
    Int32Value as google___protobuf___wrappers_pb2___Int32Value,
    Int64Value as google___protobuf___wrappers_pb2___Int64Value,
    StringValue as google___protobuf___wrappers_pb2___StringValue,
)
from typing_extensions import Literal as typing_extensions___Literal

from google.ads.google_ads.v3.proto.common.criteria_pb2 import (
    DeviceInfo as google___ads___googleads___v3___common___criteria_pb2___DeviceInfo,
    GenderInfo as google___ads___googleads___v3___common___criteria_pb2___GenderInfo,
)
from google.ads.google_ads.v3.proto.enums.reach_plan_ad_length_pb2 import (
    ReachPlanAdLengthEnum as google___ads___googleads___v3___enums___reach_plan_ad_length_pb2___ReachPlanAdLengthEnum,
)
from google.ads.google_ads.v3.proto.enums.reach_plan_age_range_pb2 import (
    ReachPlanAgeRangeEnum as google___ads___googleads___v3___enums___reach_plan_age_range_pb2___ReachPlanAgeRangeEnum,
)
from google.ads.google_ads.v3.proto.enums.reach_plan_network_pb2 import (
    ReachPlanNetworkEnum as google___ads___googleads___v3___enums___reach_plan_network_pb2___ReachPlanNetworkEnum,
)

builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int

DESCRIPTOR: google___protobuf___descriptor___FileDescriptor = ...

class ListPlannableLocationsRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    def __init__(self,) -> None: ...

type___ListPlannableLocationsRequest = ListPlannableLocationsRequest

class ListPlannableLocationsResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def plannable_locations(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___PlannableLocation
    ]: ...
    def __init__(
        self,
        *,
        plannable_locations: typing___Optional[
            typing___Iterable[type___PlannableLocation]
        ] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "plannable_locations", b"plannable_locations"
        ],
    ) -> None: ...

type___ListPlannableLocationsResponse = ListPlannableLocationsResponse

class PlannableLocation(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def id(self) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def name(self) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def parent_country_id(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    def __init__(
        self,
        *,
        id: typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        name: typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        parent_country_id: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "id", b"id", "name", b"name", "parent_country_id", b"parent_country_id"
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "id", b"id", "name", b"name", "parent_country_id", b"parent_country_id"
        ],
    ) -> None: ...

type___PlannableLocation = PlannableLocation

class ListPlannableProductsRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def plannable_location_id(
        self,
    ) -> google___protobuf___wrappers_pb2___StringValue: ...
    def __init__(
        self,
        *,
        plannable_location_id: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "plannable_location_id", b"plannable_location_id"
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "plannable_location_id", b"plannable_location_id"
        ],
    ) -> None: ...

type___ListPlannableProductsRequest = ListPlannableProductsRequest

class ListPlannableProductsResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def product_metadata(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___ProductMetadata
    ]: ...
    def __init__(
        self,
        *,
        product_metadata: typing___Optional[
            typing___Iterable[type___ProductMetadata]
        ] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "product_metadata", b"product_metadata"
        ],
    ) -> None: ...

type___ListPlannableProductsResponse = ListPlannableProductsResponse

class ProductMetadata(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def plannable_product_code(
        self,
    ) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def plannable_targeting(self) -> type___PlannableTargeting: ...
    def __init__(
        self,
        *,
        plannable_product_code: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
        plannable_targeting: typing___Optional[type___PlannableTargeting] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "plannable_product_code",
            b"plannable_product_code",
            "plannable_targeting",
            b"plannable_targeting",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "plannable_product_code",
            b"plannable_product_code",
            "plannable_targeting",
            b"plannable_targeting",
        ],
    ) -> None: ...

type___ProductMetadata = ProductMetadata

class PlannableTargeting(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    age_ranges: google___protobuf___internal___containers___RepeatedScalarFieldContainer[
        google___ads___googleads___v3___enums___reach_plan_age_range_pb2___ReachPlanAgeRangeEnum.ReachPlanAgeRangeValue
    ] = ...
    networks: google___protobuf___internal___containers___RepeatedScalarFieldContainer[
        google___ads___googleads___v3___enums___reach_plan_network_pb2___ReachPlanNetworkEnum.ReachPlanNetworkValue
    ] = ...
    @property
    def genders(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        google___ads___googleads___v3___common___criteria_pb2___GenderInfo
    ]: ...
    @property
    def devices(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        google___ads___googleads___v3___common___criteria_pb2___DeviceInfo
    ]: ...
    def __init__(
        self,
        *,
        age_ranges: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v3___enums___reach_plan_age_range_pb2___ReachPlanAgeRangeEnum.ReachPlanAgeRangeValue
            ]
        ] = None,
        genders: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v3___common___criteria_pb2___GenderInfo
            ]
        ] = None,
        devices: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v3___common___criteria_pb2___DeviceInfo
            ]
        ] = None,
        networks: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v3___enums___reach_plan_network_pb2___ReachPlanNetworkEnum.ReachPlanNetworkValue
            ]
        ] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "age_ranges",
            b"age_ranges",
            "devices",
            b"devices",
            "genders",
            b"genders",
            "networks",
            b"networks",
        ],
    ) -> None: ...

type___PlannableTargeting = PlannableTargeting

class GenerateProductMixIdeasRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    customer_id: typing___Text = ...
    @property
    def plannable_location_id(
        self,
    ) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def currency_code(self) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def budget_micros(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    @property
    def preferences(self) -> type___Preferences: ...
    def __init__(
        self,
        *,
        customer_id: typing___Optional[typing___Text] = None,
        plannable_location_id: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
        currency_code: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
        budget_micros: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
        preferences: typing___Optional[type___Preferences] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "budget_micros",
            b"budget_micros",
            "currency_code",
            b"currency_code",
            "plannable_location_id",
            b"plannable_location_id",
            "preferences",
            b"preferences",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "budget_micros",
            b"budget_micros",
            "currency_code",
            b"currency_code",
            "customer_id",
            b"customer_id",
            "plannable_location_id",
            b"plannable_location_id",
            "preferences",
            b"preferences",
        ],
    ) -> None: ...

type___GenerateProductMixIdeasRequest = GenerateProductMixIdeasRequest

class Preferences(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    ad_length: google___ads___googleads___v3___enums___reach_plan_ad_length_pb2___ReachPlanAdLengthEnum.ReachPlanAdLengthValue = ...
    @property
    def is_skippable(self) -> google___protobuf___wrappers_pb2___BoolValue: ...
    @property
    def starts_with_sound(self) -> google___protobuf___wrappers_pb2___BoolValue: ...
    @property
    def top_content_only(self) -> google___protobuf___wrappers_pb2___BoolValue: ...
    @property
    def has_guaranteed_price(self) -> google___protobuf___wrappers_pb2___BoolValue: ...
    def __init__(
        self,
        *,
        is_skippable: typing___Optional[
            google___protobuf___wrappers_pb2___BoolValue
        ] = None,
        starts_with_sound: typing___Optional[
            google___protobuf___wrappers_pb2___BoolValue
        ] = None,
        ad_length: typing___Optional[
            google___ads___googleads___v3___enums___reach_plan_ad_length_pb2___ReachPlanAdLengthEnum.ReachPlanAdLengthValue
        ] = None,
        top_content_only: typing___Optional[
            google___protobuf___wrappers_pb2___BoolValue
        ] = None,
        has_guaranteed_price: typing___Optional[
            google___protobuf___wrappers_pb2___BoolValue
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "has_guaranteed_price",
            b"has_guaranteed_price",
            "is_skippable",
            b"is_skippable",
            "starts_with_sound",
            b"starts_with_sound",
            "top_content_only",
            b"top_content_only",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "ad_length",
            b"ad_length",
            "has_guaranteed_price",
            b"has_guaranteed_price",
            "is_skippable",
            b"is_skippable",
            "starts_with_sound",
            b"starts_with_sound",
            "top_content_only",
            b"top_content_only",
        ],
    ) -> None: ...

type___Preferences = Preferences

class GenerateProductMixIdeasResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def product_allocation(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___ProductAllocation
    ]: ...
    def __init__(
        self,
        *,
        product_allocation: typing___Optional[
            typing___Iterable[type___ProductAllocation]
        ] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "product_allocation", b"product_allocation"
        ],
    ) -> None: ...

type___GenerateProductMixIdeasResponse = GenerateProductMixIdeasResponse

class ProductAllocation(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def plannable_product_code(
        self,
    ) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def budget_micros(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    def __init__(
        self,
        *,
        plannable_product_code: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
        budget_micros: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "budget_micros",
            b"budget_micros",
            "plannable_product_code",
            b"plannable_product_code",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "budget_micros",
            b"budget_micros",
            "plannable_product_code",
            b"plannable_product_code",
        ],
    ) -> None: ...

type___ProductAllocation = ProductAllocation

class GenerateReachForecastRequest(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    customer_id: typing___Text = ...
    @property
    def currency_code(self) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def campaign_duration(self) -> type___CampaignDuration: ...
    @property
    def cookie_frequency_cap(self) -> google___protobuf___wrappers_pb2___Int32Value: ...
    @property
    def min_effective_frequency(
        self,
    ) -> google___protobuf___wrappers_pb2___Int32Value: ...
    @property
    def targeting(self) -> type___Targeting: ...
    @property
    def planned_products(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___PlannedProduct
    ]: ...
    def __init__(
        self,
        *,
        customer_id: typing___Optional[typing___Text] = None,
        currency_code: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
        campaign_duration: typing___Optional[type___CampaignDuration] = None,
        cookie_frequency_cap: typing___Optional[
            google___protobuf___wrappers_pb2___Int32Value
        ] = None,
        min_effective_frequency: typing___Optional[
            google___protobuf___wrappers_pb2___Int32Value
        ] = None,
        targeting: typing___Optional[type___Targeting] = None,
        planned_products: typing___Optional[
            typing___Iterable[type___PlannedProduct]
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "campaign_duration",
            b"campaign_duration",
            "cookie_frequency_cap",
            b"cookie_frequency_cap",
            "currency_code",
            b"currency_code",
            "min_effective_frequency",
            b"min_effective_frequency",
            "targeting",
            b"targeting",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "campaign_duration",
            b"campaign_duration",
            "cookie_frequency_cap",
            b"cookie_frequency_cap",
            "currency_code",
            b"currency_code",
            "customer_id",
            b"customer_id",
            "min_effective_frequency",
            b"min_effective_frequency",
            "planned_products",
            b"planned_products",
            "targeting",
            b"targeting",
        ],
    ) -> None: ...

type___GenerateReachForecastRequest = GenerateReachForecastRequest

class Targeting(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    age_range: google___ads___googleads___v3___enums___reach_plan_age_range_pb2___ReachPlanAgeRangeEnum.ReachPlanAgeRangeValue = ...
    network: google___ads___googleads___v3___enums___reach_plan_network_pb2___ReachPlanNetworkEnum.ReachPlanNetworkValue = ...
    @property
    def plannable_location_id(
        self,
    ) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def genders(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        google___ads___googleads___v3___common___criteria_pb2___GenderInfo
    ]: ...
    @property
    def devices(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        google___ads___googleads___v3___common___criteria_pb2___DeviceInfo
    ]: ...
    def __init__(
        self,
        *,
        plannable_location_id: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
        age_range: typing___Optional[
            google___ads___googleads___v3___enums___reach_plan_age_range_pb2___ReachPlanAgeRangeEnum.ReachPlanAgeRangeValue
        ] = None,
        genders: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v3___common___criteria_pb2___GenderInfo
            ]
        ] = None,
        devices: typing___Optional[
            typing___Iterable[
                google___ads___googleads___v3___common___criteria_pb2___DeviceInfo
            ]
        ] = None,
        network: typing___Optional[
            google___ads___googleads___v3___enums___reach_plan_network_pb2___ReachPlanNetworkEnum.ReachPlanNetworkValue
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "plannable_location_id", b"plannable_location_id"
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "age_range",
            b"age_range",
            "devices",
            b"devices",
            "genders",
            b"genders",
            "network",
            b"network",
            "plannable_location_id",
            b"plannable_location_id",
        ],
    ) -> None: ...

type___Targeting = Targeting

class CampaignDuration(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def duration_in_days(self) -> google___protobuf___wrappers_pb2___Int32Value: ...
    def __init__(
        self,
        *,
        duration_in_days: typing___Optional[
            google___protobuf___wrappers_pb2___Int32Value
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "duration_in_days", b"duration_in_days"
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "duration_in_days", b"duration_in_days"
        ],
    ) -> None: ...

type___CampaignDuration = CampaignDuration

class PlannedProduct(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def plannable_product_code(
        self,
    ) -> google___protobuf___wrappers_pb2___StringValue: ...
    @property
    def budget_micros(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    def __init__(
        self,
        *,
        plannable_product_code: typing___Optional[
            google___protobuf___wrappers_pb2___StringValue
        ] = None,
        budget_micros: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "budget_micros",
            b"budget_micros",
            "plannable_product_code",
            b"plannable_product_code",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "budget_micros",
            b"budget_micros",
            "plannable_product_code",
            b"plannable_product_code",
        ],
    ) -> None: ...

type___PlannedProduct = PlannedProduct

class GenerateReachForecastResponse(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def on_target_audience_metrics(self) -> type___OnTargetAudienceMetrics: ...
    @property
    def reach_curve(self) -> type___ReachCurve: ...
    def __init__(
        self,
        *,
        on_target_audience_metrics: typing___Optional[
            type___OnTargetAudienceMetrics
        ] = None,
        reach_curve: typing___Optional[type___ReachCurve] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "on_target_audience_metrics",
            b"on_target_audience_metrics",
            "reach_curve",
            b"reach_curve",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "on_target_audience_metrics",
            b"on_target_audience_metrics",
            "reach_curve",
            b"reach_curve",
        ],
    ) -> None: ...

type___GenerateReachForecastResponse = GenerateReachForecastResponse

class ReachCurve(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def reach_forecasts(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___ReachForecast
    ]: ...
    def __init__(
        self,
        *,
        reach_forecasts: typing___Optional[
            typing___Iterable[type___ReachForecast]
        ] = None,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal["reach_forecasts", b"reach_forecasts"],
    ) -> None: ...

type___ReachCurve = ReachCurve

class ReachForecast(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def cost_micros(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    @property
    def forecast(self) -> type___Forecast: ...
    @property
    def forecasted_product_allocations(
        self,
    ) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[
        type___ProductAllocation
    ]: ...
    def __init__(
        self,
        *,
        cost_micros: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
        forecast: typing___Optional[type___Forecast] = None,
        forecasted_product_allocations: typing___Optional[
            typing___Iterable[type___ProductAllocation]
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "cost_micros", b"cost_micros", "forecast", b"forecast"
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "cost_micros",
            b"cost_micros",
            "forecast",
            b"forecast",
            "forecasted_product_allocations",
            b"forecasted_product_allocations",
        ],
    ) -> None: ...

type___ReachForecast = ReachForecast

class Forecast(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def on_target_reach(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    @property
    def total_reach(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    @property
    def on_target_impressions(
        self,
    ) -> google___protobuf___wrappers_pb2___Int64Value: ...
    @property
    def total_impressions(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    def __init__(
        self,
        *,
        on_target_reach: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
        total_reach: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
        on_target_impressions: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
        total_impressions: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "on_target_impressions",
            b"on_target_impressions",
            "on_target_reach",
            b"on_target_reach",
            "total_impressions",
            b"total_impressions",
            "total_reach",
            b"total_reach",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "on_target_impressions",
            b"on_target_impressions",
            "on_target_reach",
            b"on_target_reach",
            "total_impressions",
            b"total_impressions",
            "total_reach",
            b"total_reach",
        ],
    ) -> None: ...

type___Forecast = Forecast

class OnTargetAudienceMetrics(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    @property
    def youtube_audience_size(
        self,
    ) -> google___protobuf___wrappers_pb2___Int64Value: ...
    @property
    def census_audience_size(self) -> google___protobuf___wrappers_pb2___Int64Value: ...
    def __init__(
        self,
        *,
        youtube_audience_size: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
        census_audience_size: typing___Optional[
            google___protobuf___wrappers_pb2___Int64Value
        ] = None,
    ) -> None: ...
    def HasField(
        self,
        field_name: typing_extensions___Literal[
            "census_audience_size",
            b"census_audience_size",
            "youtube_audience_size",
            b"youtube_audience_size",
        ],
    ) -> builtin___bool: ...
    def ClearField(
        self,
        field_name: typing_extensions___Literal[
            "census_audience_size",
            b"census_audience_size",
            "youtube_audience_size",
            b"youtube_audience_size",
        ],
    ) -> None: ...

type___OnTargetAudienceMetrics = OnTargetAudienceMetrics
