import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { BasicUserListInfo } from "../common/user_lists";
import { LogicalUserListInfo } from "../common/user_lists";
import { RuleBasedUserListInfo } from "../common/user_lists";
import { SimilarUserListInfo } from "../common/user_lists";
import { CrmBasedUserListInfo } from "../common/user_lists";
import { UserListAccessStatusEnum_UserListAccessStatus } from "../enums/user_list_access_status";
import { AccessReasonEnum_AccessReason } from "../enums/access_reason";
import { UserListClosingReasonEnum_UserListClosingReason } from "../enums/user_list_closing_reason";
import { UserListTypeEnum_UserListType } from "../enums/user_list_type";
import { UserListSizeRangeEnum_UserListSizeRange } from "../enums/user_list_size_range";
import { UserListMembershipStatusEnum_UserListMembershipStatus } from "../enums/user_list_membership_status";
/**
 * A user list. This is a list of users a customer may target.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.UserList
 */
export interface UserList {
    /**
     * Immutable. The resource name of the user list.
     * User list resource names have the form:
     *
     * `customers/{customer_id}/userLists/{user_list_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. Id of the user list.
     *
     * @generated from protobuf field: optional int64 id = 25;
     */
    id?: bigint;
    /**
     * Output only. An option that indicates if a user may edit a list. Depends on the list
     * ownership and list type. For example, external remarketing user lists are
     * not editable.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional bool read_only = 26;
     */
    readOnly?: boolean;
    /**
     * Name of this user list. Depending on its access_reason, the user list name
     * may not be unique (for example, if access_reason=SHARED)
     *
     * @generated from protobuf field: optional string name = 27;
     */
    name?: string;
    /**
     * Description of this user list.
     *
     * @generated from protobuf field: optional string description = 28;
     */
    description?: string;
    /**
     * Membership status of this user list. Indicates whether a user list is open
     * or active. Only open user lists can accumulate more users and can be
     * targeted to.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.UserListMembershipStatusEnum.UserListMembershipStatus membership_status = 6;
     */
    membershipStatus: UserListMembershipStatusEnum_UserListMembershipStatus;
    /**
     * An ID from external system. It is used by user list sellers to correlate
     * IDs on their systems.
     *
     * @generated from protobuf field: optional string integration_code = 29;
     */
    integrationCode?: string;
    /**
     * Number of days a user's cookie stays on your list since its most recent
     * addition to the list. This field must be between 0 and 540 inclusive.
     * However, for CRM based userlists, this field can be set to 10000 which
     * means no expiration.
     *
     * It'll be ignored for logical_user_list.
     *
     * @generated from protobuf field: optional int64 membership_life_span = 30;
     */
    membershipLifeSpan?: bigint;
    /**
     * Output only. Estimated number of users in this user list, on the Google Display Network.
     * This value is null if the number of users has not yet been determined.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional int64 size_for_display = 31;
     */
    sizeForDisplay?: bigint;
    /**
     * Output only. Size range in terms of number of users of the UserList, on the Google
     * Display Network.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.UserListSizeRangeEnum.UserListSizeRange size_range_for_display = 10;
     */
    sizeRangeForDisplay: UserListSizeRangeEnum_UserListSizeRange;
    /**
     * Output only. Estimated number of users in this user list in the google.com domain.
     * These are the users available for targeting in Search campaigns.
     * This value is null if the number of users has not yet been determined.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional int64 size_for_search = 32;
     */
    sizeForSearch?: bigint;
    /**
     * Output only. Size range in terms of number of users of the UserList, for Search ads.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.UserListSizeRangeEnum.UserListSizeRange size_range_for_search = 12;
     */
    sizeRangeForSearch: UserListSizeRangeEnum_UserListSizeRange;
    /**
     * Output only. Type of this list.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.UserListTypeEnum.UserListType type = 13;
     */
    type: UserListTypeEnum_UserListType;
    /**
     * Indicating the reason why this user list membership status is closed. It is
     * only populated on lists that were automatically closed due to inactivity,
     * and will be cleared once the list membership status becomes open.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.UserListClosingReasonEnum.UserListClosingReason closing_reason = 14;
     */
    closingReason: UserListClosingReasonEnum_UserListClosingReason;
    /**
     * Output only. Indicates the reason this account has been granted access to the list.
     * The reason can be SHARED, OWNED, LICENSED or SUBSCRIBED.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AccessReasonEnum.AccessReason access_reason = 15;
     */
    accessReason: AccessReasonEnum_AccessReason;
    /**
     * Indicates if this share is still enabled. When a UserList is shared with
     * the user this field is set to ENABLED. Later the userList owner can decide
     * to revoke the share and make it DISABLED.
     * The default value of this field is set to ENABLED.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.UserListAccessStatusEnum.UserListAccessStatus account_user_list_status = 16;
     */
    accountUserListStatus: UserListAccessStatusEnum_UserListAccessStatus;
    /**
     * Indicates if this user list is eligible for Google Search Network.
     *
     * @generated from protobuf field: optional bool eligible_for_search = 33;
     */
    eligibleForSearch?: boolean;
    /**
     * Output only. Indicates this user list is eligible for Google Display Network.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional bool eligible_for_display = 34;
     */
    eligibleForDisplay?: boolean;
    /**
     * Output only. Indicates match rate for Customer Match lists. The range of this field is
     * [0-100]. This will be null for other list types or when it's not possible
     * to calculate the match rate.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional int32 match_rate_percentage = 24;
     */
    matchRatePercentage?: number;
    /**
     * @generated from protobuf oneof: user_list
     */
    userList: {
        oneofKind: "crmBasedUserList";
        /**
         * User list of CRM users provided by the advertiser.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.CrmBasedUserListInfo crm_based_user_list = 19;
         */
        crmBasedUserList: CrmBasedUserListInfo;
    } | {
        oneofKind: "similarUserList";
        /**
         * Output only. User list which are similar to users from another UserList.
         * These lists are readonly and automatically created by google.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.SimilarUserListInfo similar_user_list = 20;
         */
        similarUserList: SimilarUserListInfo;
    } | {
        oneofKind: "ruleBasedUserList";
        /**
         * User list generated by a rule.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.RuleBasedUserListInfo rule_based_user_list = 21;
         */
        ruleBasedUserList: RuleBasedUserListInfo;
    } | {
        oneofKind: "logicalUserList";
        /**
         * User list that is a custom combination of user lists and user interests.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.LogicalUserListInfo logical_user_list = 22;
         */
        logicalUserList: LogicalUserListInfo;
    } | {
        oneofKind: "basicUserList";
        /**
         * User list targeting as a collection of conversion or remarketing actions.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.BasicUserListInfo basic_user_list = 23;
         */
        basicUserList: BasicUserListInfo;
    } | {
        oneofKind: undefined;
    };
}
declare class UserList$Type extends MessageType<UserList> {
    constructor();
    create(value?: PartialMessage<UserList>): UserList;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UserList): UserList;
    internalBinaryWrite(message: UserList, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.UserList
 */
export declare const UserList: UserList$Type;
export {};
