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 { CustomInterestMemberTypeEnum_CustomInterestMemberType } from "../enums/custom_interest_member_type";
import { CustomInterestTypeEnum_CustomInterestType } from "../enums/custom_interest_type";
import { CustomInterestStatusEnum_CustomInterestStatus } from "../enums/custom_interest_status";
/**
 * A custom interest. This is a list of users by interest.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CustomInterest
 */
export interface CustomInterest {
    /**
     * Immutable. The resource name of the custom interest.
     * Custom interest resource names have the form:
     *
     * `customers/{customer_id}/customInterests/{custom_interest_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. Id of the custom interest.
     *
     * @generated from protobuf field: optional int64 id = 8;
     */
    id?: bigint;
    /**
     * Status of this custom interest. Indicates whether the custom interest is
     * enabled or removed.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CustomInterestStatusEnum.CustomInterestStatus status = 3;
     */
    status: CustomInterestStatusEnum_CustomInterestStatus;
    /**
     * Name of the custom interest. It should be unique across the same custom
     * affinity audience.
     * This field is required for create operations.
     *
     * @generated from protobuf field: optional string name = 9;
     */
    name?: string;
    /**
     * Type of the custom interest, CUSTOM_AFFINITY or CUSTOM_INTENT.
     * By default the type is set to CUSTOM_AFFINITY.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CustomInterestTypeEnum.CustomInterestType type = 5;
     */
    type: CustomInterestTypeEnum_CustomInterestType;
    /**
     * Description of this custom interest audience.
     *
     * @generated from protobuf field: optional string description = 10;
     */
    description?: string;
    /**
     * List of custom interest members that this custom interest is composed of.
     * Members can be added during CustomInterest creation. If members are
     * presented in UPDATE operation, existing members will be overridden.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.resources.CustomInterestMember members = 7;
     */
    members: CustomInterestMember[];
}
/**
 * A member of custom interest audience. A member can be a keyword or url.
 * It is immutable, that is, it can only be created or removed but not changed.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CustomInterestMember
 */
export interface CustomInterestMember {
    /**
     * The type of custom interest member, KEYWORD or URL.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CustomInterestMemberTypeEnum.CustomInterestMemberType member_type = 1;
     */
    memberType: CustomInterestMemberTypeEnum_CustomInterestMemberType;
    /**
     * Keyword text when member_type is KEYWORD or URL string when
     * member_type is URL.
     *
     * @generated from protobuf field: optional string parameter = 3;
     */
    parameter?: string;
}
declare class CustomInterest$Type extends MessageType<CustomInterest> {
    constructor();
    create(value?: PartialMessage<CustomInterest>): CustomInterest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomInterest): CustomInterest;
    internalBinaryWrite(message: CustomInterest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CustomInterest
 */
export declare const CustomInterest: CustomInterest$Type;
declare class CustomInterestMember$Type extends MessageType<CustomInterestMember> {
    constructor();
    create(value?: PartialMessage<CustomInterestMember>): CustomInterestMember;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomInterestMember): CustomInterestMember;
    internalBinaryWrite(message: CustomInterestMember, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CustomInterestMember
 */
export declare const CustomInterestMember: CustomInterestMember$Type;
export {};
