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 { KeywordThemeInfo } from "../common/criteria";
import { CombinedAudienceInfo } from "../common/criteria";
import { CustomAudienceInfo } from "../common/criteria";
import { CustomAffinityInfo } from "../common/criteria";
import { LocationGroupInfo } from "../common/criteria";
import { MobileDeviceInfo } from "../common/criteria";
import { OperatingSystemVersionInfo } from "../common/criteria";
import { WebpageInfo } from "../common/criteria";
import { UserInterestInfo } from "../common/criteria";
import { CarrierInfo } from "../common/criteria";
import { ContentLabelInfo } from "../common/criteria";
import { IpBlockInfo } from "../common/criteria";
import { LanguageInfo } from "../common/criteria";
import { ListingScopeInfo } from "../common/criteria";
import { TopicInfo } from "../common/criteria";
import { ProximityInfo } from "../common/criteria";
import { YouTubeChannelInfo } from "../common/criteria";
import { YouTubeVideoInfo } from "../common/criteria";
import { UserListInfo } from "../common/criteria";
import { ParentalStatusInfo } from "../common/criteria";
import { IncomeRangeInfo } from "../common/criteria";
import { GenderInfo } from "../common/criteria";
import { AgeRangeInfo } from "../common/criteria";
import { AdScheduleInfo } from "../common/criteria";
import { DeviceInfo } from "../common/criteria";
import { LocationInfo } from "../common/criteria";
import { MobileApplicationInfo } from "../common/criteria";
import { MobileAppCategoryInfo } from "../common/criteria";
import { PlacementInfo } from "../common/criteria";
import { KeywordInfo } from "../common/criteria";
import { CampaignCriterionStatusEnum_CampaignCriterionStatus } from "../enums/campaign_criterion_status";
import { CriterionTypeEnum_CriterionType } from "../enums/criterion_type";
/**
 * A campaign criterion.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CampaignCriterion
 */
export interface CampaignCriterion {
    /**
     * Immutable. The resource name of the campaign criterion.
     * Campaign criterion resource names have the form:
     *
     * `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Immutable. The campaign to which the criterion belongs.
     *
     * @generated from protobuf field: optional string campaign = 37;
     */
    campaign?: string;
    /**
     * Output only. The ID of the criterion.
     *
     * This field is ignored during mutate.
     *
     * @generated from protobuf field: optional int64 criterion_id = 38;
     */
    criterionId?: bigint;
    /**
     * Output only. The display name of the criterion.
     *
     * This field is ignored for mutates.
     *
     * @generated from protobuf field: string display_name = 43;
     */
    displayName: string;
    /**
     * The modifier for the bids when the criterion matches. The modifier must be
     * in the range: 0.1 - 10.0. Most targetable criteria types support modifiers.
     * Use 0 to opt out of a Device type.
     *
     * @generated from protobuf field: optional float bid_modifier = 39;
     */
    bidModifier?: number;
    /**
     * Immutable. Whether to target (`false`) or exclude (`true`) the criterion.
     *
     * @generated from protobuf field: optional bool negative = 40;
     */
    negative?: boolean;
    /**
     * Output only. The type of the criterion.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CriterionTypeEnum.CriterionType type = 6;
     */
    type: CriterionTypeEnum_CriterionType;
    /**
     * The status of the criterion.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CampaignCriterionStatusEnum.CampaignCriterionStatus status = 35;
     */
    status: CampaignCriterionStatusEnum_CampaignCriterionStatus;
    /**
     * @generated from protobuf oneof: criterion
     */
    criterion: {
        oneofKind: "keyword";
        /**
         * Immutable. Keyword.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.KeywordInfo keyword = 8;
         */
        keyword: KeywordInfo;
    } | {
        oneofKind: "placement";
        /**
         * Immutable. Placement.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.PlacementInfo placement = 9;
         */
        placement: PlacementInfo;
    } | {
        oneofKind: "mobileAppCategory";
        /**
         * Immutable. Mobile app category.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.MobileAppCategoryInfo mobile_app_category = 10;
         */
        mobileAppCategory: MobileAppCategoryInfo;
    } | {
        oneofKind: "mobileApplication";
        /**
         * Immutable. Mobile application.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.MobileApplicationInfo mobile_application = 11;
         */
        mobileApplication: MobileApplicationInfo;
    } | {
        oneofKind: "location";
        /**
         * Immutable. Location.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.LocationInfo location = 12;
         */
        location: LocationInfo;
    } | {
        oneofKind: "device";
        /**
         * Immutable. Device.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.DeviceInfo device = 13;
         */
        device: DeviceInfo;
    } | {
        oneofKind: "adSchedule";
        /**
         * Immutable. Ad Schedule.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.AdScheduleInfo ad_schedule = 15;
         */
        adSchedule: AdScheduleInfo;
    } | {
        oneofKind: "ageRange";
        /**
         * Immutable. Age range.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.AgeRangeInfo age_range = 16;
         */
        ageRange: AgeRangeInfo;
    } | {
        oneofKind: "gender";
        /**
         * Immutable. Gender.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.GenderInfo gender = 17;
         */
        gender: GenderInfo;
    } | {
        oneofKind: "incomeRange";
        /**
         * Immutable. Income range.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.IncomeRangeInfo income_range = 18;
         */
        incomeRange: IncomeRangeInfo;
    } | {
        oneofKind: "parentalStatus";
        /**
         * Immutable. Parental status.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.ParentalStatusInfo parental_status = 19;
         */
        parentalStatus: ParentalStatusInfo;
    } | {
        oneofKind: "userList";
        /**
         * Immutable. User List.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.UserListInfo user_list = 22;
         */
        userList: UserListInfo;
    } | {
        oneofKind: "youtubeVideo";
        /**
         * Immutable. YouTube Video.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.YouTubeVideoInfo youtube_video = 20;
         */
        youtubeVideo: YouTubeVideoInfo;
    } | {
        oneofKind: "youtubeChannel";
        /**
         * Immutable. YouTube Channel.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 21;
         */
        youtubeChannel: YouTubeChannelInfo;
    } | {
        oneofKind: "proximity";
        /**
         * Immutable. Proximity.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.ProximityInfo proximity = 23;
         */
        proximity: ProximityInfo;
    } | {
        oneofKind: "topic";
        /**
         * Immutable. Topic.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TopicInfo topic = 24;
         */
        topic: TopicInfo;
    } | {
        oneofKind: "listingScope";
        /**
         * Immutable. Listing scope.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.ListingScopeInfo listing_scope = 25;
         */
        listingScope: ListingScopeInfo;
    } | {
        oneofKind: "language";
        /**
         * Immutable. Language.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.LanguageInfo language = 26;
         */
        language: LanguageInfo;
    } | {
        oneofKind: "ipBlock";
        /**
         * Immutable. IpBlock.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.IpBlockInfo ip_block = 27;
         */
        ipBlock: IpBlockInfo;
    } | {
        oneofKind: "contentLabel";
        /**
         * Immutable. ContentLabel.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.ContentLabelInfo content_label = 28;
         */
        contentLabel: ContentLabelInfo;
    } | {
        oneofKind: "carrier";
        /**
         * Immutable. Carrier.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.CarrierInfo carrier = 29;
         */
        carrier: CarrierInfo;
    } | {
        oneofKind: "userInterest";
        /**
         * Immutable. User Interest.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.UserInterestInfo user_interest = 30;
         */
        userInterest: UserInterestInfo;
    } | {
        oneofKind: "webpage";
        /**
         * Immutable. Webpage.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.WebpageInfo webpage = 31;
         */
        webpage: WebpageInfo;
    } | {
        oneofKind: "operatingSystemVersion";
        /**
         * Immutable. Operating system version.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.OperatingSystemVersionInfo operating_system_version = 32;
         */
        operatingSystemVersion: OperatingSystemVersionInfo;
    } | {
        oneofKind: "mobileDevice";
        /**
         * Immutable. Mobile Device.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.MobileDeviceInfo mobile_device = 33;
         */
        mobileDevice: MobileDeviceInfo;
    } | {
        oneofKind: "locationGroup";
        /**
         * Immutable. Location Group
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.LocationGroupInfo location_group = 34;
         */
        locationGroup: LocationGroupInfo;
    } | {
        oneofKind: "customAffinity";
        /**
         * Immutable. Custom Affinity.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.CustomAffinityInfo custom_affinity = 36;
         */
        customAffinity: CustomAffinityInfo;
    } | {
        oneofKind: "customAudience";
        /**
         * Immutable. Custom Audience
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.CustomAudienceInfo custom_audience = 41;
         */
        customAudience: CustomAudienceInfo;
    } | {
        oneofKind: "combinedAudience";
        /**
         * Immutable. Combined Audience.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.CombinedAudienceInfo combined_audience = 42;
         */
        combinedAudience: CombinedAudienceInfo;
    } | {
        oneofKind: "keywordTheme";
        /**
         * Immutable. Smart Campaign Keyword Theme.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.KeywordThemeInfo keyword_theme = 45;
         */
        keywordTheme: KeywordThemeInfo;
    } | {
        oneofKind: undefined;
    };
}
declare class CampaignCriterion$Type extends MessageType<CampaignCriterion> {
    constructor();
    create(value?: PartialMessage<CampaignCriterion>): CampaignCriterion;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CampaignCriterion): CampaignCriterion;
    internalBinaryWrite(message: CampaignCriterion, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CampaignCriterion
 */
export declare const CampaignCriterion: CampaignCriterion$Type;
export {};
