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 { TargetSpend } from "../common/bidding";
import { TargetRoas } from "../common/bidding";
import { TargetImpressionShare } from "../common/bidding";
import { TargetCpa } from "../common/bidding";
import { MaximizeConversions } from "../common/bidding";
import { MaximizeConversionValue } from "../common/bidding";
import { EnhancedCpc } from "../common/bidding";
import { BiddingStrategyTypeEnum_BiddingStrategyType } from "../enums/bidding_strategy_type";
import { BiddingStrategyStatusEnum_BiddingStrategyStatus } from "../enums/bidding_strategy_status";
/**
 * A bidding strategy.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.BiddingStrategy
 */
export interface BiddingStrategy {
    /**
     * Immutable. The resource name of the bidding strategy.
     * Bidding strategy resource names have the form:
     *
     * `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The ID of the bidding strategy.
     *
     * @generated from protobuf field: optional int64 id = 16;
     */
    id?: bigint;
    /**
     * The name of the bidding strategy.
     * All bidding strategies within an account must be named distinctly.
     *
     * The length of this string should be between 1 and 255, inclusive,
     * in UTF-8 bytes, (trimmed).
     *
     * @generated from protobuf field: optional string name = 17;
     */
    name?: string;
    /**
     * Output only. The status of the bidding strategy.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.BiddingStrategyStatusEnum.BiddingStrategyStatus status = 15;
     */
    status: BiddingStrategyStatusEnum_BiddingStrategyStatus;
    /**
     * Output only. The type of the bidding strategy.
     * Create a bidding strategy by setting the bidding scheme.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 5;
     */
    type: BiddingStrategyTypeEnum_BiddingStrategyType;
    /**
     * Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code).
     *
     * For bidding strategies in manager customers, this currency can be set on
     * creation and defaults to the manager customer's currency. For serving
     * customers, this field cannot be set; all strategies in a serving customer
     * implicitly use the serving customer's currency. In all cases the
     * effective_currency_code field returns the currency used by the strategy.
     *
     * @generated from protobuf field: string currency_code = 23;
     */
    currencyCode: string;
    /**
     * Output only. The currency used by the bidding strategy (ISO 4217 three-letter code).
     *
     * For bidding strategies in manager customers, this is the currency set by
     * the advertiser when creating the strategy. For serving customers, this is
     * the customer's currency_code.
     *
     * Bidding strategy metrics are reported in this currency.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional string effective_currency_code = 20;
     */
    effectiveCurrencyCode?: string;
    /**
     * Output only. The number of campaigns attached to this bidding strategy.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional int64 campaign_count = 18;
     */
    campaignCount?: bigint;
    /**
     * Output only. The number of non-removed campaigns attached to this bidding strategy.
     *
     * This field is read-only.
     *
     * @generated from protobuf field: optional int64 non_removed_campaign_count = 19;
     */
    nonRemovedCampaignCount?: bigint;
    /**
     * @generated from protobuf oneof: scheme
     */
    scheme: {
        oneofKind: "enhancedCpc";
        /**
         * A bidding strategy that raises bids for clicks that seem more likely to
         * lead to a conversion and lowers them for clicks where they seem less
         * likely.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.EnhancedCpc enhanced_cpc = 7;
         */
        enhancedCpc: EnhancedCpc;
    } | {
        oneofKind: "maximizeConversionValue";
        /**
         * An automated bidding strategy to help get the most conversion value for
         * your campaigns while spending your budget.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.MaximizeConversionValue maximize_conversion_value = 21;
         */
        maximizeConversionValue: MaximizeConversionValue;
    } | {
        oneofKind: "maximizeConversions";
        /**
         * An automated bidding strategy to help get the most conversions for your
         * campaigns while spending your budget.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.MaximizeConversions maximize_conversions = 22;
         */
        maximizeConversions: MaximizeConversions;
    } | {
        oneofKind: "targetCpa";
        /**
         * A bidding strategy that sets bids to help get as many conversions as
         * possible at the target cost-per-acquisition (CPA) you set.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TargetCpa target_cpa = 9;
         */
        targetCpa: TargetCpa;
    } | {
        oneofKind: "targetImpressionShare";
        /**
         * A bidding strategy that automatically optimizes towards a chosen
         * percentage of impressions.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TargetImpressionShare target_impression_share = 48;
         */
        targetImpressionShare: TargetImpressionShare;
    } | {
        oneofKind: "targetRoas";
        /**
         * A bidding strategy that helps you maximize revenue while averaging a
         * specific target Return On Ad Spend (ROAS).
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TargetRoas target_roas = 11;
         */
        targetRoas: TargetRoas;
    } | {
        oneofKind: "targetSpend";
        /**
         * A bid strategy that sets your bids to help get as many clicks as
         * possible within your budget.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TargetSpend target_spend = 12;
         */
        targetSpend: TargetSpend;
    } | {
        oneofKind: undefined;
    };
}
declare class BiddingStrategy$Type extends MessageType<BiddingStrategy> {
    constructor();
    create(value?: PartialMessage<BiddingStrategy>): BiddingStrategy;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BiddingStrategy): BiddingStrategy;
    internalBinaryWrite(message: BiddingStrategy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.BiddingStrategy
 */
export declare const BiddingStrategy: BiddingStrategy$Type;
export {};
