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 { CustomAudienceMemberTypeEnum_CustomAudienceMemberType } from "../enums/custom_audience_member_type";
import { CustomAudienceTypeEnum_CustomAudienceType } from "../enums/custom_audience_type";
import { CustomAudienceStatusEnum_CustomAudienceStatus } from "../enums/custom_audience_status";
/**
 * A custom audience. This is a list of users by interest.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CustomAudience
 */
export interface CustomAudience {
    /**
     * Immutable. The resource name of the custom audience.
     * Custom audience resource names have the form:
     *
     * `customers/{customer_id}/customAudiences/{custom_audience_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. ID of the custom audience.
     *
     * @generated from protobuf field: int64 id = 2;
     */
    id: bigint;
    /**
     * Output only. Status of this custom audience. Indicates whether the custom audience is
     * enabled or removed.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CustomAudienceStatusEnum.CustomAudienceStatus status = 3;
     */
    status: CustomAudienceStatusEnum_CustomAudienceStatus;
    /**
     * Name of the custom audience. It should be unique for all custom audiences
     * created by a customer.
     * This field is required for creating operations.
     *
     * @generated from protobuf field: string name = 4;
     */
    name: string;
    /**
     * Type of the custom audience.
     * ("INTEREST" OR "PURCHASE_INTENT" is not allowed for newly created custom
     * audience but kept for existing audiences)
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CustomAudienceTypeEnum.CustomAudienceType type = 5;
     */
    type: CustomAudienceTypeEnum_CustomAudienceType;
    /**
     * Description of this custom audience.
     *
     * @generated from protobuf field: string description = 6;
     */
    description: string;
    /**
     * List of custom audience members that this custom audience is composed of.
     * Members can be added during CustomAudience creation. If members are
     * presented in UPDATE operation, existing members will be overridden.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.resources.CustomAudienceMember members = 7;
     */
    members: CustomAudienceMember[];
}
/**
 * A member of custom audience. A member can be a KEYWORD, URL,
 * PLACE_CATEGORY or APP. It can only be created or removed but not changed.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CustomAudienceMember
 */
export interface CustomAudienceMember {
    /**
     * The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY or APP.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CustomAudienceMemberTypeEnum.CustomAudienceMemberType member_type = 1;
     */
    memberType: CustomAudienceMemberTypeEnum_CustomAudienceMemberType;
    /**
     * @generated from protobuf oneof: value
     */
    value: {
        oneofKind: "keyword";
        /**
         * A keyword or keyword phrase — at most 10 words and 80 characters.
         * Languages with double-width characters such as Chinese, Japanese,
         * or Korean, are allowed 40 characters, which describes the user's
         * interests or actions.
         *
         * @generated from protobuf field: string keyword = 2;
         */
        keyword: string;
    } | {
        oneofKind: "url";
        /**
         * An HTTP URL, protocol-included — at most 2048 characters, which includes
         * contents users have interests in.
         *
         * @generated from protobuf field: string url = 3;
         */
        url: string;
    } | {
        oneofKind: "placeCategory";
        /**
         * A place type described by a place category users visit.
         *
         * @generated from protobuf field: int64 place_category = 4;
         */
        placeCategory: bigint;
    } | {
        oneofKind: "app";
        /**
         * A package name of Android apps which users installed such as
         * com.google.example.
         *
         * @generated from protobuf field: string app = 5;
         */
        app: string;
    } | {
        oneofKind: undefined;
    };
}
declare class CustomAudience$Type extends MessageType<CustomAudience> {
    constructor();
    create(value?: PartialMessage<CustomAudience>): CustomAudience;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomAudience): CustomAudience;
    internalBinaryWrite(message: CustomAudience, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CustomAudience
 */
export declare const CustomAudience: CustomAudience$Type;
declare class CustomAudienceMember$Type extends MessageType<CustomAudienceMember> {
    constructor();
    create(value?: PartialMessage<CustomAudienceMember>): CustomAudienceMember;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomAudienceMember): CustomAudienceMember;
    internalBinaryWrite(message: CustomAudienceMember, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CustomAudienceMember
 */
export declare const CustomAudienceMember: CustomAudienceMember$Type;
export {};
