# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.ads.google_ads.v2.proto.enums.customer_match_upload_key_type_pb2 import (
    CustomerMatchUploadKeyTypeEnum as google___ads___googleads___v2___enums___customer_match_upload_key_type_pb2___CustomerMatchUploadKeyTypeEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_combined_rule_operator_pb2 import (
    UserListCombinedRuleOperatorEnum as google___ads___googleads___v2___enums___user_list_combined_rule_operator_pb2___UserListCombinedRuleOperatorEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_crm_data_source_type_pb2 import (
    UserListCrmDataSourceTypeEnum as google___ads___googleads___v2___enums___user_list_crm_data_source_type_pb2___UserListCrmDataSourceTypeEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_date_rule_item_operator_pb2 import (
    UserListDateRuleItemOperatorEnum as google___ads___googleads___v2___enums___user_list_date_rule_item_operator_pb2___UserListDateRuleItemOperatorEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_logical_rule_operator_pb2 import (
    UserListLogicalRuleOperatorEnum as google___ads___googleads___v2___enums___user_list_logical_rule_operator_pb2___UserListLogicalRuleOperatorEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_number_rule_item_operator_pb2 import (
    UserListNumberRuleItemOperatorEnum as google___ads___googleads___v2___enums___user_list_number_rule_item_operator_pb2___UserListNumberRuleItemOperatorEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_prepopulation_status_pb2 import (
    UserListPrepopulationStatusEnum as google___ads___googleads___v2___enums___user_list_prepopulation_status_pb2___UserListPrepopulationStatusEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_rule_type_pb2 import (
    UserListRuleTypeEnum as google___ads___googleads___v2___enums___user_list_rule_type_pb2___UserListRuleTypeEnum,
)

from google.ads.google_ads.v2.proto.enums.user_list_string_rule_item_operator_pb2 import (
    UserListStringRuleItemOperatorEnum as google___ads___googleads___v2___enums___user_list_string_rule_item_operator_pb2___UserListStringRuleItemOperatorEnum,
)

from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer as google___protobuf___internal___containers___RepeatedCompositeFieldContainer,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from google.protobuf.wrappers_pb2 import (
    DoubleValue as google___protobuf___wrappers_pb2___DoubleValue,
    Int64Value as google___protobuf___wrappers_pb2___Int64Value,
    StringValue as google___protobuf___wrappers_pb2___StringValue,
)

from typing import (
    Iterable as typing___Iterable,
    Optional as typing___Optional,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


class SimilarUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def seed_user_list(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    def __init__(self,
        *,
        seed_user_list : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> SimilarUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"seed_user_list"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"seed_user_list"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"seed_user_list",b"seed_user_list"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"seed_user_list",b"seed_user_list"]) -> None: ...

class CrmBasedUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    upload_key_type = ... # type: google___ads___googleads___v2___enums___customer_match_upload_key_type_pb2___CustomerMatchUploadKeyTypeEnum.CustomerMatchUploadKeyType
    data_source_type = ... # type: google___ads___googleads___v2___enums___user_list_crm_data_source_type_pb2___UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType

    @property
    def app_id(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    def __init__(self,
        *,
        app_id : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        upload_key_type : typing___Optional[google___ads___googleads___v2___enums___customer_match_upload_key_type_pb2___CustomerMatchUploadKeyTypeEnum.CustomerMatchUploadKeyType] = None,
        data_source_type : typing___Optional[google___ads___googleads___v2___enums___user_list_crm_data_source_type_pb2___UserListCrmDataSourceTypeEnum.UserListCrmDataSourceType] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> CrmBasedUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"app_id"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"app_id",u"data_source_type",u"upload_key_type"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"app_id",b"app_id"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"app_id",b"app_id",u"data_source_type",b"data_source_type",u"upload_key_type",b"upload_key_type"]) -> None: ...

class UserListRuleInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    rule_type = ... # type: google___ads___googleads___v2___enums___user_list_rule_type_pb2___UserListRuleTypeEnum.UserListRuleType

    @property
    def rule_item_groups(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[UserListRuleItemGroupInfo]: ...

    def __init__(self,
        *,
        rule_type : typing___Optional[google___ads___googleads___v2___enums___user_list_rule_type_pb2___UserListRuleTypeEnum.UserListRuleType] = None,
        rule_item_groups : typing___Optional[typing___Iterable[UserListRuleItemGroupInfo]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListRuleInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"rule_item_groups",u"rule_type"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"rule_item_groups",b"rule_item_groups",u"rule_type",b"rule_type"]) -> None: ...

class UserListRuleItemGroupInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def rule_items(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[UserListRuleItemInfo]: ...

    def __init__(self,
        *,
        rule_items : typing___Optional[typing___Iterable[UserListRuleItemInfo]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListRuleItemGroupInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"rule_items"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"rule_items",b"rule_items"]) -> None: ...

class UserListRuleItemInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def name(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def number_rule_item(self) -> UserListNumberRuleItemInfo: ...

    @property
    def string_rule_item(self) -> UserListStringRuleItemInfo: ...

    @property
    def date_rule_item(self) -> UserListDateRuleItemInfo: ...

    def __init__(self,
        *,
        name : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        number_rule_item : typing___Optional[UserListNumberRuleItemInfo] = None,
        string_rule_item : typing___Optional[UserListStringRuleItemInfo] = None,
        date_rule_item : typing___Optional[UserListDateRuleItemInfo] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListRuleItemInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"date_rule_item",u"name",u"number_rule_item",u"rule_item",u"string_rule_item"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"date_rule_item",u"name",u"number_rule_item",u"rule_item",u"string_rule_item"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"date_rule_item",b"date_rule_item",u"name",b"name",u"number_rule_item",b"number_rule_item",u"rule_item",b"rule_item",u"string_rule_item",b"string_rule_item"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"date_rule_item",b"date_rule_item",u"name",b"name",u"number_rule_item",b"number_rule_item",u"rule_item",b"rule_item",u"string_rule_item",b"string_rule_item"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"rule_item",b"rule_item"]) -> typing_extensions___Literal["number_rule_item","string_rule_item","date_rule_item"]: ...

class UserListDateRuleItemInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    operator = ... # type: google___ads___googleads___v2___enums___user_list_date_rule_item_operator_pb2___UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator

    @property
    def value(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def offset_in_days(self) -> google___protobuf___wrappers_pb2___Int64Value: ...

    def __init__(self,
        *,
        operator : typing___Optional[google___ads___googleads___v2___enums___user_list_date_rule_item_operator_pb2___UserListDateRuleItemOperatorEnum.UserListDateRuleItemOperator] = None,
        value : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        offset_in_days : typing___Optional[google___protobuf___wrappers_pb2___Int64Value] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListDateRuleItemInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"offset_in_days",u"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"offset_in_days",u"operator",u"value"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"offset_in_days",b"offset_in_days",u"value",b"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"offset_in_days",b"offset_in_days",u"operator",b"operator",u"value",b"value"]) -> None: ...

class UserListNumberRuleItemInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    operator = ... # type: google___ads___googleads___v2___enums___user_list_number_rule_item_operator_pb2___UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator

    @property
    def value(self) -> google___protobuf___wrappers_pb2___DoubleValue: ...

    def __init__(self,
        *,
        operator : typing___Optional[google___ads___googleads___v2___enums___user_list_number_rule_item_operator_pb2___UserListNumberRuleItemOperatorEnum.UserListNumberRuleItemOperator] = None,
        value : typing___Optional[google___protobuf___wrappers_pb2___DoubleValue] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListNumberRuleItemInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",u"value"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"value",b"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",b"operator",u"value",b"value"]) -> None: ...

class UserListStringRuleItemInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    operator = ... # type: google___ads___googleads___v2___enums___user_list_string_rule_item_operator_pb2___UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator

    @property
    def value(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    def __init__(self,
        *,
        operator : typing___Optional[google___ads___googleads___v2___enums___user_list_string_rule_item_operator_pb2___UserListStringRuleItemOperatorEnum.UserListStringRuleItemOperator] = None,
        value : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListStringRuleItemInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",u"value"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"value",b"value"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",b"operator",u"value",b"value"]) -> None: ...

class CombinedRuleUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    rule_operator = ... # type: google___ads___googleads___v2___enums___user_list_combined_rule_operator_pb2___UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator

    @property
    def left_operand(self) -> UserListRuleInfo: ...

    @property
    def right_operand(self) -> UserListRuleInfo: ...

    def __init__(self,
        *,
        left_operand : typing___Optional[UserListRuleInfo] = None,
        right_operand : typing___Optional[UserListRuleInfo] = None,
        rule_operator : typing___Optional[google___ads___googleads___v2___enums___user_list_combined_rule_operator_pb2___UserListCombinedRuleOperatorEnum.UserListCombinedRuleOperator] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> CombinedRuleUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"left_operand",u"right_operand"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"left_operand",u"right_operand",u"rule_operator"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"left_operand",b"left_operand",u"right_operand",b"right_operand"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"left_operand",b"left_operand",u"right_operand",b"right_operand",u"rule_operator",b"rule_operator"]) -> None: ...

class DateSpecificRuleUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def rule(self) -> UserListRuleInfo: ...

    @property
    def start_date(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def end_date(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    def __init__(self,
        *,
        rule : typing___Optional[UserListRuleInfo] = None,
        start_date : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        end_date : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> DateSpecificRuleUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"end_date",u"rule",u"start_date"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"end_date",u"rule",u"start_date"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"end_date",b"end_date",u"rule",b"rule",u"start_date",b"start_date"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"end_date",b"end_date",u"rule",b"rule",u"start_date",b"start_date"]) -> None: ...

class ExpressionRuleUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def rule(self) -> UserListRuleInfo: ...

    def __init__(self,
        *,
        rule : typing___Optional[UserListRuleInfo] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> ExpressionRuleUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"rule"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"rule"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"rule",b"rule"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"rule",b"rule"]) -> None: ...

class RuleBasedUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    prepopulation_status = ... # type: google___ads___googleads___v2___enums___user_list_prepopulation_status_pb2___UserListPrepopulationStatusEnum.UserListPrepopulationStatus

    @property
    def combined_rule_user_list(self) -> CombinedRuleUserListInfo: ...

    @property
    def date_specific_rule_user_list(self) -> DateSpecificRuleUserListInfo: ...

    @property
    def expression_rule_user_list(self) -> ExpressionRuleUserListInfo: ...

    def __init__(self,
        *,
        prepopulation_status : typing___Optional[google___ads___googleads___v2___enums___user_list_prepopulation_status_pb2___UserListPrepopulationStatusEnum.UserListPrepopulationStatus] = None,
        combined_rule_user_list : typing___Optional[CombinedRuleUserListInfo] = None,
        date_specific_rule_user_list : typing___Optional[DateSpecificRuleUserListInfo] = None,
        expression_rule_user_list : typing___Optional[ExpressionRuleUserListInfo] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> RuleBasedUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"combined_rule_user_list",u"date_specific_rule_user_list",u"expression_rule_user_list",u"rule_based_user_list"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"combined_rule_user_list",u"date_specific_rule_user_list",u"expression_rule_user_list",u"prepopulation_status",u"rule_based_user_list"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"combined_rule_user_list",b"combined_rule_user_list",u"date_specific_rule_user_list",b"date_specific_rule_user_list",u"expression_rule_user_list",b"expression_rule_user_list",u"rule_based_user_list",b"rule_based_user_list"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"combined_rule_user_list",b"combined_rule_user_list",u"date_specific_rule_user_list",b"date_specific_rule_user_list",u"expression_rule_user_list",b"expression_rule_user_list",u"prepopulation_status",b"prepopulation_status",u"rule_based_user_list",b"rule_based_user_list"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"rule_based_user_list",b"rule_based_user_list"]) -> typing_extensions___Literal["combined_rule_user_list","date_specific_rule_user_list","expression_rule_user_list"]: ...

class LogicalUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def rules(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[UserListLogicalRuleInfo]: ...

    def __init__(self,
        *,
        rules : typing___Optional[typing___Iterable[UserListLogicalRuleInfo]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> LogicalUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"rules"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"rules",b"rules"]) -> None: ...

class UserListLogicalRuleInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    operator = ... # type: google___ads___googleads___v2___enums___user_list_logical_rule_operator_pb2___UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator

    @property
    def rule_operands(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[LogicalUserListOperandInfo]: ...

    def __init__(self,
        *,
        operator : typing___Optional[google___ads___googleads___v2___enums___user_list_logical_rule_operator_pb2___UserListLogicalRuleOperatorEnum.UserListLogicalRuleOperator] = None,
        rule_operands : typing___Optional[typing___Iterable[LogicalUserListOperandInfo]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListLogicalRuleInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",u"rule_operands"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"operator",b"operator",u"rule_operands",b"rule_operands"]) -> None: ...

class LogicalUserListOperandInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def user_list(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    def __init__(self,
        *,
        user_list : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> LogicalUserListOperandInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"user_list"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"user_list"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"user_list",b"user_list"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"user_list",b"user_list"]) -> None: ...

class BasicUserListInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def actions(self) -> google___protobuf___internal___containers___RepeatedCompositeFieldContainer[UserListActionInfo]: ...

    def __init__(self,
        *,
        actions : typing___Optional[typing___Iterable[UserListActionInfo]] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> BasicUserListInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"actions"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"actions",b"actions"]) -> None: ...

class UserListActionInfo(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...

    @property
    def conversion_action(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    @property
    def remarketing_action(self) -> google___protobuf___wrappers_pb2___StringValue: ...

    def __init__(self,
        *,
        conversion_action : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        remarketing_action : typing___Optional[google___protobuf___wrappers_pb2___StringValue] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> UserListActionInfo: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"conversion_action",u"remarketing_action",u"user_list_action"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"conversion_action",u"remarketing_action",u"user_list_action"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"conversion_action",b"conversion_action",u"remarketing_action",b"remarketing_action",u"user_list_action",b"user_list_action"]) -> bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"conversion_action",b"conversion_action",u"remarketing_action",b"remarketing_action",u"user_list_action",b"user_list_action"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"user_list_action",b"user_list_action"]) -> typing_extensions___Literal["conversion_action","remarketing_action"]: ...
