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 { HotelCheckInDateRangeInfo } from "../common/criteria";
import { PreferredContentInfo } from "../common/criteria";
import { DeviceInfo } from "../common/criteria";
import { HotelCheckInDayInfo } from "../common/criteria";
import { HotelLengthOfStayInfo } from "../common/criteria";
import { HotelAdvanceBookingWindowInfo } from "../common/criteria";
import { HotelDateSelectionTypeInfo } from "../common/criteria";
import { BidModifierSourceEnum_BidModifierSource } from "../enums/bid_modifier_source";
/**
 * Represents an ad group bid modifier.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AdGroupBidModifier
 */
export interface AdGroupBidModifier {
    /**
     * Immutable. The resource name of the ad group bid modifier.
     * Ad group bid modifier resource names have the form:
     *
     * `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Immutable. The ad group to which this criterion belongs.
     *
     * @generated from protobuf field: optional string ad_group = 13;
     */
    adGroup?: string;
    /**
     * Output only. The ID of the criterion to bid modify.
     *
     * This field is ignored for mutates.
     *
     * @generated from protobuf field: optional int64 criterion_id = 14;
     */
    criterionId?: bigint;
    /**
     * The modifier for the bid when the criterion matches. The modifier must be
     * in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent.
     * Use 0 to opt out of a Device type.
     *
     * @generated from protobuf field: optional double bid_modifier = 15;
     */
    bidModifier?: number;
    /**
     * Output only. The base ad group from which this draft/trial adgroup bid modifier was
     * created. If ad_group is a base ad group then this field will be equal to
     * ad_group. If the ad group was created in the draft or trial and has no
     * corresponding base ad group, then this field will be null.
     * This field is readonly.
     *
     * @generated from protobuf field: optional string base_ad_group = 16;
     */
    baseAdGroup?: string;
    /**
     * Output only. Bid modifier source.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.BidModifierSourceEnum.BidModifierSource bid_modifier_source = 10;
     */
    bidModifierSource: BidModifierSourceEnum_BidModifierSource;
    /**
     * @generated from protobuf oneof: criterion
     */
    criterion: {
        oneofKind: "hotelDateSelectionType";
        /**
         * Immutable. Criterion for hotel date selection (default dates versus user selected).
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.HotelDateSelectionTypeInfo hotel_date_selection_type = 5;
         */
        hotelDateSelectionType: HotelDateSelectionTypeInfo;
    } | {
        oneofKind: "hotelAdvanceBookingWindow";
        /**
         * Immutable. Criterion for number of days prior to the stay the booking is being made.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.HotelAdvanceBookingWindowInfo hotel_advance_booking_window = 6;
         */
        hotelAdvanceBookingWindow: HotelAdvanceBookingWindowInfo;
    } | {
        oneofKind: "hotelLengthOfStay";
        /**
         * Immutable. Criterion for length of hotel stay in nights.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.HotelLengthOfStayInfo hotel_length_of_stay = 7;
         */
        hotelLengthOfStay: HotelLengthOfStayInfo;
    } | {
        oneofKind: "hotelCheckInDay";
        /**
         * Immutable. Criterion for day of the week the booking is for.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.HotelCheckInDayInfo hotel_check_in_day = 8;
         */
        hotelCheckInDay: HotelCheckInDayInfo;
    } | {
        oneofKind: "device";
        /**
         * Immutable. A device criterion.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.DeviceInfo device = 11;
         */
        device: DeviceInfo;
    } | {
        oneofKind: "preferredContent";
        /**
         * Immutable. A preferred content criterion.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.PreferredContentInfo preferred_content = 12;
         */
        preferredContent: PreferredContentInfo;
    } | {
        oneofKind: "hotelCheckInDateRange";
        /**
         * Immutable. Criterion for a hotel check-in date range.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.HotelCheckInDateRangeInfo hotel_check_in_date_range = 17;
         */
        hotelCheckInDateRange: HotelCheckInDateRangeInfo;
    } | {
        oneofKind: undefined;
    };
}
declare class AdGroupBidModifier$Type extends MessageType<AdGroupBidModifier> {
    constructor();
    create(value?: PartialMessage<AdGroupBidModifier>): AdGroupBidModifier;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AdGroupBidModifier): AdGroupBidModifier;
    internalBinaryWrite(message: AdGroupBidModifier, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AdGroupBidModifier
 */
export declare const AdGroupBidModifier: AdGroupBidModifier$Type;
export {};
