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 { TargetImpressionShareLocationEnum_TargetImpressionShareLocation } from "../enums/target_impression_share_location";
import { BiddingStrategyTypeEnum_BiddingStrategyType } from "../enums/bidding_strategy_type";
/**
 * Represents a view of BiddingStrategies owned by and shared with the customer.
 *
 * In contrast to BiddingStrategy, this resource includes strategies owned by
 * managers of the customer and shared with this customer - in addition to
 * strategies owned by this customer. This resource does not provide metrics and
 * only exposes a limited subset of the BiddingStrategy attributes.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy
 */
export interface AccessibleBiddingStrategy {
    /**
     * Output only. The resource name of the accessible bidding strategy.
     * AccessibleBiddingStrategy resource names have the form:
     *
     * `customers/{customer_id}/accessibleBiddingStrategies/{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: int64 id = 2;
     */
    id: bigint;
    /**
     * Output only. The name of the bidding strategy.
     *
     * @generated from protobuf field: string name = 3;
     */
    name: string;
    /**
     * Output only. The type of the bidding strategy.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.BiddingStrategyTypeEnum.BiddingStrategyType type = 4;
     */
    type: BiddingStrategyTypeEnum_BiddingStrategyType;
    /**
     * Output only. The ID of the Customer which owns the bidding strategy.
     *
     * @generated from protobuf field: int64 owner_customer_id = 5;
     */
    ownerCustomerId: bigint;
    /**
     * Output only. descriptive_name of the Customer which owns the bidding strategy.
     *
     * @generated from protobuf field: string owner_descriptive_name = 6;
     */
    ownerDescriptiveName: string;
    /**
     * @generated from protobuf oneof: scheme
     */
    scheme: {
        oneofKind: "maximizeConversionValue";
        /**
         * Output only. 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.resources.AccessibleBiddingStrategy.MaximizeConversionValue maximize_conversion_value = 7;
         */
        maximizeConversionValue: AccessibleBiddingStrategy_MaximizeConversionValue;
    } | {
        oneofKind: "maximizeConversions";
        /**
         * Output only. 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.resources.AccessibleBiddingStrategy.MaximizeConversions maximize_conversions = 8;
         */
        maximizeConversions: AccessibleBiddingStrategy_MaximizeConversions;
    } | {
        oneofKind: "targetCpa";
        /**
         * Output only. 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.resources.AccessibleBiddingStrategy.TargetCpa target_cpa = 9;
         */
        targetCpa: AccessibleBiddingStrategy_TargetCpa;
    } | {
        oneofKind: "targetImpressionShare";
        /**
         * Output only. A bidding strategy that automatically optimizes towards a chosen
         * percentage of impressions.
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetImpressionShare target_impression_share = 10;
         */
        targetImpressionShare: AccessibleBiddingStrategy_TargetImpressionShare;
    } | {
        oneofKind: "targetRoas";
        /**
         * Output only. 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.resources.AccessibleBiddingStrategy.TargetRoas target_roas = 11;
         */
        targetRoas: AccessibleBiddingStrategy_TargetRoas;
    } | {
        oneofKind: "targetSpend";
        /**
         * Output only. 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.resources.AccessibleBiddingStrategy.TargetSpend target_spend = 12;
         */
        targetSpend: AccessibleBiddingStrategy_TargetSpend;
    } | {
        oneofKind: undefined;
    };
}
/**
 * An automated bidding strategy to help get the most conversion value for
 * your campaigns while spending your budget.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.MaximizeConversionValue
 */
export interface AccessibleBiddingStrategy_MaximizeConversionValue {
    /**
     * Output only. The target return on ad spend (ROAS) option. If set, the bid strategy
     * will maximize revenue while averaging the target return on ad spend. If
     * the target ROAS is high, the bid strategy may not be able to spend the
     * full budget. If the target ROAS is not set, the bid strategy will aim to
     * achieve the highest possible ROAS for the budget.
     *
     * @generated from protobuf field: double target_roas = 1;
     */
    targetRoas: number;
}
/**
 * An automated bidding strategy to help get the most conversions for your
 * campaigns while spending your budget.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.MaximizeConversions
 */
export interface AccessibleBiddingStrategy_MaximizeConversions {
    /**
     * Output only. The target cost per acquisition (CPA) option. This is the average amount
     * that you would like to spend per acquisition.
     *
     * @generated from protobuf field: int64 target_cpa_micros = 2;
     */
    targetCpaMicros: bigint;
}
/**
 * An automated bid strategy that sets bids to help get as many conversions as
 * possible at the target cost-per-acquisition (CPA) you set.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetCpa
 */
export interface AccessibleBiddingStrategy_TargetCpa {
    /**
     * Output only. Average CPA target.
     * This target should be greater than or equal to minimum billable unit
     * based on the currency for the account.
     *
     * @generated from protobuf field: optional int64 target_cpa_micros = 1;
     */
    targetCpaMicros?: bigint;
}
/**
 * An automated bidding strategy that sets bids so that a certain percentage
 * of search ads are shown at the top of the first page (or other targeted
 * location).
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetImpressionShare
 */
export interface AccessibleBiddingStrategy_TargetImpressionShare {
    /**
     * Output only. The targeted location on the search results page.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1;
     */
    location: TargetImpressionShareLocationEnum_TargetImpressionShareLocation;
    /**
     * The chosen fraction of ads to be shown in the targeted location in
     * micros. For example, 1% equals 10,000.
     *
     * @generated from protobuf field: optional int64 location_fraction_micros = 2;
     */
    locationFractionMicros?: bigint;
    /**
     * Output only. The highest CPC bid the automated bidding system is permitted to specify.
     * This is a required field entered by the advertiser that sets the ceiling
     * and specified in local micros.
     *
     * @generated from protobuf field: optional int64 cpc_bid_ceiling_micros = 3;
     */
    cpcBidCeilingMicros?: bigint;
}
/**
 * An automated bidding strategy that helps you maximize revenue while
 * averaging a specific target return on ad spend (ROAS).
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetRoas
 */
export interface AccessibleBiddingStrategy_TargetRoas {
    /**
     * Output only. The chosen revenue (based on conversion data) per unit of spend.
     *
     * @generated from protobuf field: optional double target_roas = 1;
     */
    targetRoas?: number;
}
/**
 * An automated bid strategy that sets your bids to help get as many clicks
 * as possible within your budget.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetSpend
 */
export interface AccessibleBiddingStrategy_TargetSpend {
    /**
     * Output only. The spend target under which to maximize clicks.
     * A TargetSpend bidder will attempt to spend the smaller of this value
     * or the natural throttling spend amount.
     * If not specified, the budget is used as the spend target.
     * This field is deprecated and should no longer be used. See
     * https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
     * for details.
     *
     * @deprecated
     * @generated from protobuf field: optional int64 target_spend_micros = 1 [deprecated = true];
     */
    targetSpendMicros?: bigint;
    /**
     * Output only. Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     *
     * @generated from protobuf field: optional int64 cpc_bid_ceiling_micros = 2;
     */
    cpcBidCeilingMicros?: bigint;
}
declare class AccessibleBiddingStrategy$Type extends MessageType<AccessibleBiddingStrategy> {
    constructor();
    create(value?: PartialMessage<AccessibleBiddingStrategy>): AccessibleBiddingStrategy;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccessibleBiddingStrategy): AccessibleBiddingStrategy;
    internalBinaryWrite(message: AccessibleBiddingStrategy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy
 */
export declare const AccessibleBiddingStrategy: AccessibleBiddingStrategy$Type;
declare class AccessibleBiddingStrategy_MaximizeConversionValue$Type extends MessageType<AccessibleBiddingStrategy_MaximizeConversionValue> {
    constructor();
    create(value?: PartialMessage<AccessibleBiddingStrategy_MaximizeConversionValue>): AccessibleBiddingStrategy_MaximizeConversionValue;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccessibleBiddingStrategy_MaximizeConversionValue): AccessibleBiddingStrategy_MaximizeConversionValue;
    internalBinaryWrite(message: AccessibleBiddingStrategy_MaximizeConversionValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.MaximizeConversionValue
 */
export declare const AccessibleBiddingStrategy_MaximizeConversionValue: AccessibleBiddingStrategy_MaximizeConversionValue$Type;
declare class AccessibleBiddingStrategy_MaximizeConversions$Type extends MessageType<AccessibleBiddingStrategy_MaximizeConversions> {
    constructor();
    create(value?: PartialMessage<AccessibleBiddingStrategy_MaximizeConversions>): AccessibleBiddingStrategy_MaximizeConversions;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccessibleBiddingStrategy_MaximizeConversions): AccessibleBiddingStrategy_MaximizeConversions;
    internalBinaryWrite(message: AccessibleBiddingStrategy_MaximizeConversions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.MaximizeConversions
 */
export declare const AccessibleBiddingStrategy_MaximizeConversions: AccessibleBiddingStrategy_MaximizeConversions$Type;
declare class AccessibleBiddingStrategy_TargetCpa$Type extends MessageType<AccessibleBiddingStrategy_TargetCpa> {
    constructor();
    create(value?: PartialMessage<AccessibleBiddingStrategy_TargetCpa>): AccessibleBiddingStrategy_TargetCpa;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccessibleBiddingStrategy_TargetCpa): AccessibleBiddingStrategy_TargetCpa;
    internalBinaryWrite(message: AccessibleBiddingStrategy_TargetCpa, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetCpa
 */
export declare const AccessibleBiddingStrategy_TargetCpa: AccessibleBiddingStrategy_TargetCpa$Type;
declare class AccessibleBiddingStrategy_TargetImpressionShare$Type extends MessageType<AccessibleBiddingStrategy_TargetImpressionShare> {
    constructor();
    create(value?: PartialMessage<AccessibleBiddingStrategy_TargetImpressionShare>): AccessibleBiddingStrategy_TargetImpressionShare;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccessibleBiddingStrategy_TargetImpressionShare): AccessibleBiddingStrategy_TargetImpressionShare;
    internalBinaryWrite(message: AccessibleBiddingStrategy_TargetImpressionShare, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetImpressionShare
 */
export declare const AccessibleBiddingStrategy_TargetImpressionShare: AccessibleBiddingStrategy_TargetImpressionShare$Type;
declare class AccessibleBiddingStrategy_TargetRoas$Type extends MessageType<AccessibleBiddingStrategy_TargetRoas> {
    constructor();
    create(value?: PartialMessage<AccessibleBiddingStrategy_TargetRoas>): AccessibleBiddingStrategy_TargetRoas;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccessibleBiddingStrategy_TargetRoas): AccessibleBiddingStrategy_TargetRoas;
    internalBinaryWrite(message: AccessibleBiddingStrategy_TargetRoas, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetRoas
 */
export declare const AccessibleBiddingStrategy_TargetRoas: AccessibleBiddingStrategy_TargetRoas$Type;
declare class AccessibleBiddingStrategy_TargetSpend$Type extends MessageType<AccessibleBiddingStrategy_TargetSpend> {
    constructor();
    create(value?: PartialMessage<AccessibleBiddingStrategy_TargetSpend>): AccessibleBiddingStrategy_TargetSpend;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccessibleBiddingStrategy_TargetSpend): AccessibleBiddingStrategy_TargetSpend;
    internalBinaryWrite(message: AccessibleBiddingStrategy_TargetSpend, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccessibleBiddingStrategy.TargetSpend
 */
export declare const AccessibleBiddingStrategy_TargetSpend: AccessibleBiddingStrategy_TargetSpend$Type;
export {};
