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 { AssetFieldTypeEnum_AssetFieldType } from "../enums/asset_field_type";
import { BiddingSourceEnum_BiddingSource } from "../enums/bidding_source";
import { TargetingSetting } from "../common/targeting_setting";
import { TargetingDimensionEnum_TargetingDimension } from "../enums/targeting_dimension";
import { ExplorerAutoOptimizerSetting } from "../common/explorer_auto_optimizer_setting";
import { CustomParameter } from "../common/custom_parameter";
import { AdGroupAdRotationModeEnum_AdGroupAdRotationMode } from "../enums/ad_group_ad_rotation_mode";
import { AdGroupTypeEnum_AdGroupType } from "../enums/ad_group_type";
import { AdGroupStatusEnum_AdGroupStatus } from "../enums/ad_group_status";
/**
 * An ad group.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AdGroup
 */
export interface AdGroup {
    /**
     * Immutable. The resource name of the ad group.
     * Ad group resource names have the form:
     *
     * `customers/{customer_id}/adGroups/{ad_group_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The ID of the ad group.
     *
     * @generated from protobuf field: optional int64 id = 34;
     */
    id?: bigint;
    /**
     * The name of the ad group.
     *
     * This field is required and should not be empty when creating new ad
     * groups.
     *
     * It must contain fewer than 255 UTF-8 full-width characters.
     *
     * It must not contain any null (code point 0x0), NL line feed
     * (code point 0xA) or carriage return (code point 0xD) characters.
     *
     * @generated from protobuf field: optional string name = 35;
     */
    name?: string;
    /**
     * The status of the ad group.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AdGroupStatusEnum.AdGroupStatus status = 5;
     */
    status: AdGroupStatusEnum_AdGroupStatus;
    /**
     * Immutable. The type of the ad group.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AdGroupTypeEnum.AdGroupType type = 12;
     */
    type: AdGroupTypeEnum_AdGroupType;
    /**
     * The ad rotation mode of the ad group.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AdGroupAdRotationModeEnum.AdGroupAdRotationMode ad_rotation_mode = 22;
     */
    adRotationMode: AdGroupAdRotationModeEnum_AdGroupAdRotationMode;
    /**
     * Output only. For draft or experiment ad groups, this field is the resource name of the
     * base ad group from which this ad group was created. If a draft or
     * experiment ad group does not have a base ad group, then this field is null.
     *
     * For base ad groups, this field equals the ad group resource name.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional string base_ad_group = 36;
     */
    baseAdGroup?: string;
    /**
     * The URL template for constructing a tracking URL.
     *
     * @generated from protobuf field: optional string tracking_url_template = 37;
     */
    trackingUrlTemplate?: string;
    /**
     * The list of mappings used to substitute custom parameter tags in a
     * `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.CustomParameter url_custom_parameters = 6;
     */
    urlCustomParameters: CustomParameter[];
    /**
     * Immutable. The campaign to which the ad group belongs.
     *
     * @generated from protobuf field: optional string campaign = 38;
     */
    campaign?: string;
    /**
     * The maximum CPC (cost-per-click) bid.
     *
     * @generated from protobuf field: optional int64 cpc_bid_micros = 39;
     */
    cpcBidMicros?: bigint;
    /**
     * Output only. Value will be same as that of the CPC (cost-per-click) bid value when the
     * bidding strategy is one of manual cpc, enhanced cpc, page one promoted or
     * target outrank share, otherwise the value will be null.
     *
     * @generated from protobuf field: optional int64 effective_cpc_bid_micros = 57;
     */
    effectiveCpcBidMicros?: bigint;
    /**
     * The maximum CPM (cost-per-thousand viewable impressions) bid.
     *
     * @generated from protobuf field: optional int64 cpm_bid_micros = 40;
     */
    cpmBidMicros?: bigint;
    /**
     * The target CPA (cost-per-acquisition). If the ad group's campaign
     * bidding strategy is TargetCpa or MaximizeConversions (with its target_cpa
     * field set), then this field overrides the target CPA specified in the
     * campaign's bidding strategy.
     * Otherwise, this value is ignored.
     *
     * @generated from protobuf field: optional int64 target_cpa_micros = 41;
     */
    targetCpaMicros?: bigint;
    /**
     * Output only. The CPV (cost-per-view) bid.
     *
     * @generated from protobuf field: optional int64 cpv_bid_micros = 42;
     */
    cpvBidMicros?: bigint;
    /**
     * Average amount in micros that the advertiser is willing to pay for every
     * thousand times the ad is shown.
     *
     * @generated from protobuf field: optional int64 target_cpm_micros = 43;
     */
    targetCpmMicros?: bigint;
    /**
     * The target ROAS (return-on-ad-spend) override. If the ad group's campaign
     * bidding strategy is TargetRoas or MaximizeConversionValue (with its
     * target_roas field set), then this field overrides the target ROAS specified
     * in the campaign's bidding strategy.
     * Otherwise, this value is ignored.
     *
     * @generated from protobuf field: optional double target_roas = 44;
     */
    targetRoas?: number;
    /**
     * The percent cpc bid amount, expressed as a fraction of the advertised price
     * for some good or service. The valid range for the fraction is [0,1) and the
     * value stored here is 1,000,000 * [fraction].
     *
     * @generated from protobuf field: optional int64 percent_cpc_bid_micros = 45;
     */
    percentCpcBidMicros?: bigint;
    /**
     * Settings for the Display Campaign Optimizer, initially termed "Explorer".
     *
     * @generated from protobuf field: google.ads.googleads.v11.common.ExplorerAutoOptimizerSetting explorer_auto_optimizer_setting = 21;
     */
    explorerAutoOptimizerSetting?: ExplorerAutoOptimizerSetting;
    /**
     * Allows advertisers to specify a targeting dimension on which to place
     * absolute bids. This is only applicable for campaigns that target only the
     * display network and not search.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.TargetingDimensionEnum.TargetingDimension display_custom_bid_dimension = 23;
     */
    displayCustomBidDimension: TargetingDimensionEnum_TargetingDimension;
    /**
     * URL template for appending params to Final URL.
     *
     * @generated from protobuf field: optional string final_url_suffix = 46;
     */
    finalUrlSuffix?: string;
    /**
     * Setting for targeting related features.
     *
     * @generated from protobuf field: google.ads.googleads.v11.common.TargetingSetting targeting_setting = 25;
     */
    targetingSetting?: TargetingSetting;
    /**
     * Immutable. Setting for audience related features.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.AdGroup.AudienceSetting audience_setting = 56;
     */
    audienceSetting?: AdGroup_AudienceSetting;
    /**
     * Output only. The effective target CPA (cost-per-acquisition).
     * This field is read-only.
     *
     * @generated from protobuf field: optional int64 effective_target_cpa_micros = 47;
     */
    effectiveTargetCpaMicros?: bigint;
    /**
     * Output only. Source of the effective target CPA.
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.BiddingSourceEnum.BiddingSource effective_target_cpa_source = 29;
     */
    effectiveTargetCpaSource: BiddingSourceEnum_BiddingSource;
    /**
     * Output only. The effective target ROAS (return-on-ad-spend).
     * This field is read-only.
     *
     * @generated from protobuf field: optional double effective_target_roas = 48;
     */
    effectiveTargetRoas?: number;
    /**
     * Output only. Source of the effective target ROAS.
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.BiddingSourceEnum.BiddingSource effective_target_roas_source = 32;
     */
    effectiveTargetRoasSource: BiddingSourceEnum_BiddingSource;
    /**
     * Output only. The resource names of labels attached to this ad group.
     *
     * @generated from protobuf field: repeated string labels = 49;
     */
    labels: string[];
    /**
     * The asset field types that should be excluded from this ad group. Asset
     * links with these field types will not be inherited by this ad group from
     * the upper levels.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 54;
     */
    excludedParentAssetFieldTypes: AssetFieldTypeEnum_AssetFieldType[];
}
/**
 * Settings for the audience targeting.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AdGroup.AudienceSetting
 */
export interface AdGroup_AudienceSetting {
    /**
     * Immutable. If true, this ad group uses an Audience resource for audience targeting.
     * If false, this ad group may use audience segment criteria instead.
     *
     * @generated from protobuf field: bool use_audience_grouped = 1;
     */
    useAudienceGrouped: boolean;
}
declare class AdGroup$Type extends MessageType<AdGroup> {
    constructor();
    create(value?: PartialMessage<AdGroup>): AdGroup;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AdGroup): AdGroup;
    internalBinaryWrite(message: AdGroup, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AdGroup
 */
export declare const AdGroup: AdGroup$Type;
declare class AdGroup_AudienceSetting$Type extends MessageType<AdGroup_AudienceSetting> {
    constructor();
    create(value?: PartialMessage<AdGroup_AudienceSetting>): AdGroup_AudienceSetting;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AdGroup_AudienceSetting): AdGroup_AudienceSetting;
    internalBinaryWrite(message: AdGroup_AudienceSetting, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AdGroup.AudienceSetting
 */
export declare const AdGroup_AudienceSetting: AdGroup_AudienceSetting$Type;
export {};
