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 { YouTubeChannelInfo } from "../common/criteria";
import { YouTubeVideoInfo } from "../common/criteria";
import { PlacementInfo } from "../common/criteria";
import { MobileAppCategoryInfo } from "../common/criteria";
import { MobileApplicationInfo } from "../common/criteria";
import { ContentLabelInfo } from "../common/criteria";
import { CriterionTypeEnum_CriterionType } from "../enums/criterion_type";
/**
 * A negative criterion for exclusions at the customer level.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CustomerNegativeCriterion
 */
export interface CustomerNegativeCriterion {
    /**
     * Immutable. The resource name of the customer negative criterion.
     * Customer negative criterion resource names have the form:
     *
     * `customers/{customer_id}/customerNegativeCriteria/{criterion_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The ID of the criterion.
     *
     * @generated from protobuf field: optional int64 id = 10;
     */
    id?: bigint;
    /**
     * Output only. The type of the criterion.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.CriterionTypeEnum.CriterionType type = 3;
     */
    type: CriterionTypeEnum_CriterionType;
    /**
     * @generated from protobuf oneof: criterion
     */
    criterion: {
        oneofKind: "contentLabel";
        /**
         * Immutable. ContentLabel.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.ContentLabelInfo content_label = 4;
         */
        contentLabel: ContentLabelInfo;
    } | {
        oneofKind: "mobileApplication";
        /**
         * Immutable. MobileApplication.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.MobileApplicationInfo mobile_application = 5;
         */
        mobileApplication: MobileApplicationInfo;
    } | {
        oneofKind: "mobileAppCategory";
        /**
         * Immutable. MobileAppCategory.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.MobileAppCategoryInfo mobile_app_category = 6;
         */
        mobileAppCategory: MobileAppCategoryInfo;
    } | {
        oneofKind: "placement";
        /**
         * Immutable. Placement.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.PlacementInfo placement = 7;
         */
        placement: PlacementInfo;
    } | {
        oneofKind: "youtubeVideo";
        /**
         * Immutable. YouTube Video.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.YouTubeVideoInfo youtube_video = 8;
         */
        youtubeVideo: YouTubeVideoInfo;
    } | {
        oneofKind: "youtubeChannel";
        /**
         * Immutable. YouTube Channel.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.YouTubeChannelInfo youtube_channel = 9;
         */
        youtubeChannel: YouTubeChannelInfo;
    } | {
        oneofKind: undefined;
    };
}
declare class CustomerNegativeCriterion$Type extends MessageType<CustomerNegativeCriterion> {
    constructor();
    create(value?: PartialMessage<CustomerNegativeCriterion>): CustomerNegativeCriterion;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomerNegativeCriterion): CustomerNegativeCriterion;
    internalBinaryWrite(message: CustomerNegativeCriterion, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CustomerNegativeCriterion
 */
export declare const CustomerNegativeCriterion: CustomerNegativeCriterion$Type;
export {};
