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";
/**
 * Commission is an automatic bidding strategy in which the advertiser pays a
 * certain portion of the conversion value.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.Commission
 */
export interface Commission {
    /**
     * Commission rate defines the portion of the conversion value that the
     * advertiser will be billed. A commission rate of x should be passed into
     * this field as (x * 1,000,000). For example, 106,000 represents a commission
     * rate of 0.106 (10.6%).
     *
     * @generated from protobuf field: optional int64 commission_rate_micros = 2;
     */
    commissionRateMicros?: bigint;
}
/**
 * An automated 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.
 *
 * This bidding strategy is deprecated and cannot be created anymore. Use
 * ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.EnhancedCpc
 */
export interface EnhancedCpc {
}
/**
 * Manual bidding strategy that allows advertiser to set the bid per
 * advertiser-specified action.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.ManualCpa
 */
export interface ManualCpa {
}
/**
 * Manual click-based bidding where user pays per click.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.ManualCpc
 */
export interface ManualCpc {
    /**
     * Whether bids are to be enhanced based on conversion optimizer data.
     *
     * @generated from protobuf field: optional bool enhanced_cpc_enabled = 2;
     */
    enhancedCpcEnabled?: boolean;
}
/**
 * Manual impression-based bidding where user pays per thousand impressions.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.ManualCpm
 */
export interface ManualCpm {
}
/**
 * View based bidding where user pays per video view.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.ManualCpv
 */
export interface ManualCpv {
}
/**
 * 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.common.MaximizeConversions
 */
export interface MaximizeConversions {
    /**
     * Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * Mutable for portfolio bidding strategies only.
     *
     * @generated from protobuf field: int64 cpc_bid_ceiling_micros = 2;
     */
    cpcBidCeilingMicros: bigint;
    /**
     * Minimum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * Mutable for portfolio bidding strategies only.
     *
     * @generated from protobuf field: int64 cpc_bid_floor_micros = 3;
     */
    cpcBidFloorMicros: bigint;
    /**
     * The target cost-per-action (CPA) option. This is the average amount that
     * you would like to spend per conversion action specified in micro units of
     * the bidding strategy's currency. If set, the bid strategy will get as many
     * conversions as possible at or below the target cost-per-action. If the
     * target CPA is not set, the bid strategy will aim to achieve the lowest
     * possible CPA given the budget.
     *
     * @generated from protobuf field: int64 target_cpa_micros = 4;
     */
    targetCpaMicros: bigint;
}
/**
 * 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.common.MaximizeConversionValue
 */
export interface MaximizeConversionValue {
    /**
     * 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 = 2;
     */
    targetRoas: number;
    /**
     * Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * Mutable for portfolio bidding strategies only.
     *
     * @generated from protobuf field: int64 cpc_bid_ceiling_micros = 3;
     */
    cpcBidCeilingMicros: bigint;
    /**
     * Minimum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * Mutable for portfolio bidding strategies only.
     *
     * @generated from protobuf field: int64 cpc_bid_floor_micros = 4;
     */
    cpcBidFloorMicros: 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.common.TargetCpa
 */
export interface TargetCpa {
    /**
     * 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 = 4;
     */
    targetCpaMicros?: bigint;
    /**
     * Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * This should only be set for portfolio bid strategies.
     *
     * @generated from protobuf field: optional int64 cpc_bid_ceiling_micros = 5;
     */
    cpcBidCeilingMicros?: bigint;
    /**
     * Minimum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * This should only be set for portfolio bid strategies.
     *
     * @generated from protobuf field: optional int64 cpc_bid_floor_micros = 6;
     */
    cpcBidFloorMicros?: bigint;
}
/**
 * Target CPM (cost per thousand impressions) is an automated bidding strategy
 * that sets bids to optimize performance given the target CPM you set.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.TargetCpm
 */
export interface TargetCpm {
}
/**
 * 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.common.TargetImpressionShare
 */
export interface TargetImpressionShare {
    /**
     * 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 = 4;
     */
    locationFractionMicros?: bigint;
    /**
     * 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 = 5;
     */
    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.common.TargetRoas
 */
export interface TargetRoas {
    /**
     * Required. The chosen revenue (based on conversion data) per unit of spend.
     * Value must be between 0.01 and 1000.0, inclusive.
     *
     * @generated from protobuf field: optional double target_roas = 4;
     */
    targetRoas?: number;
    /**
     * Maximum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * This should only be set for portfolio bid strategies.
     *
     * @generated from protobuf field: optional int64 cpc_bid_ceiling_micros = 5;
     */
    cpcBidCeilingMicros?: bigint;
    /**
     * Minimum bid limit that can be set by the bid strategy.
     * The limit applies to all keywords managed by the strategy.
     * This should only be set for portfolio bid strategies.
     *
     * @generated from protobuf field: optional int64 cpc_bid_floor_micros = 6;
     */
    cpcBidFloorMicros?: bigint;
}
/**
 * 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.common.TargetSpend
 */
export interface TargetSpend {
    /**
     * 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 = 3 [deprecated = true];
     */
    targetSpendMicros?: bigint;
    /**
     * 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 = 4;
     */
    cpcBidCeilingMicros?: bigint;
}
/**
 * A bidding strategy where bids are a fraction of the advertised price for
 * some good or service.
 *
 * @generated from protobuf message google.ads.googleads.v11.common.PercentCpc
 */
export interface PercentCpc {
    /**
     * Maximum bid limit that can be set by the bid strategy. This is
     * an optional field entered by the advertiser and specified in local micros.
     * Note: A zero value is interpreted in the same way as having bid_ceiling
     * undefined.
     *
     * @generated from protobuf field: optional int64 cpc_bid_ceiling_micros = 3;
     */
    cpcBidCeilingMicros?: bigint;
    /**
     * Adjusts the bid for each auction upward or downward, depending on the
     * likelihood of a conversion. Individual bids may exceed
     * cpc_bid_ceiling_micros, but the average bid amount for a campaign should
     * not.
     *
     * @generated from protobuf field: optional bool enhanced_cpc_enabled = 4;
     */
    enhancedCpcEnabled?: boolean;
}
declare class Commission$Type extends MessageType<Commission> {
    constructor();
    create(value?: PartialMessage<Commission>): Commission;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Commission): Commission;
    internalBinaryWrite(message: Commission, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.Commission
 */
export declare const Commission: Commission$Type;
declare class EnhancedCpc$Type extends MessageType<EnhancedCpc> {
    constructor();
    create(value?: PartialMessage<EnhancedCpc>): EnhancedCpc;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnhancedCpc): EnhancedCpc;
    internalBinaryWrite(message: EnhancedCpc, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.EnhancedCpc
 */
export declare const EnhancedCpc: EnhancedCpc$Type;
declare class ManualCpa$Type extends MessageType<ManualCpa> {
    constructor();
    create(value?: PartialMessage<ManualCpa>): ManualCpa;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ManualCpa): ManualCpa;
    internalBinaryWrite(message: ManualCpa, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.ManualCpa
 */
export declare const ManualCpa: ManualCpa$Type;
declare class ManualCpc$Type extends MessageType<ManualCpc> {
    constructor();
    create(value?: PartialMessage<ManualCpc>): ManualCpc;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ManualCpc): ManualCpc;
    internalBinaryWrite(message: ManualCpc, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.ManualCpc
 */
export declare const ManualCpc: ManualCpc$Type;
declare class ManualCpm$Type extends MessageType<ManualCpm> {
    constructor();
    create(value?: PartialMessage<ManualCpm>): ManualCpm;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ManualCpm): ManualCpm;
    internalBinaryWrite(message: ManualCpm, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.ManualCpm
 */
export declare const ManualCpm: ManualCpm$Type;
declare class ManualCpv$Type extends MessageType<ManualCpv> {
    constructor();
    create(value?: PartialMessage<ManualCpv>): ManualCpv;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ManualCpv): ManualCpv;
    internalBinaryWrite(message: ManualCpv, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.ManualCpv
 */
export declare const ManualCpv: ManualCpv$Type;
declare class MaximizeConversions$Type extends MessageType<MaximizeConversions> {
    constructor();
    create(value?: PartialMessage<MaximizeConversions>): MaximizeConversions;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MaximizeConversions): MaximizeConversions;
    internalBinaryWrite(message: MaximizeConversions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.MaximizeConversions
 */
export declare const MaximizeConversions: MaximizeConversions$Type;
declare class MaximizeConversionValue$Type extends MessageType<MaximizeConversionValue> {
    constructor();
    create(value?: PartialMessage<MaximizeConversionValue>): MaximizeConversionValue;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MaximizeConversionValue): MaximizeConversionValue;
    internalBinaryWrite(message: MaximizeConversionValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.MaximizeConversionValue
 */
export declare const MaximizeConversionValue: MaximizeConversionValue$Type;
declare class TargetCpa$Type extends MessageType<TargetCpa> {
    constructor();
    create(value?: PartialMessage<TargetCpa>): TargetCpa;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TargetCpa): TargetCpa;
    internalBinaryWrite(message: TargetCpa, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.TargetCpa
 */
export declare const TargetCpa: TargetCpa$Type;
declare class TargetCpm$Type extends MessageType<TargetCpm> {
    constructor();
    create(value?: PartialMessage<TargetCpm>): TargetCpm;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TargetCpm): TargetCpm;
    internalBinaryWrite(message: TargetCpm, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.TargetCpm
 */
export declare const TargetCpm: TargetCpm$Type;
declare class TargetImpressionShare$Type extends MessageType<TargetImpressionShare> {
    constructor();
    create(value?: PartialMessage<TargetImpressionShare>): TargetImpressionShare;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TargetImpressionShare): TargetImpressionShare;
    internalBinaryWrite(message: TargetImpressionShare, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.TargetImpressionShare
 */
export declare const TargetImpressionShare: TargetImpressionShare$Type;
declare class TargetRoas$Type extends MessageType<TargetRoas> {
    constructor();
    create(value?: PartialMessage<TargetRoas>): TargetRoas;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TargetRoas): TargetRoas;
    internalBinaryWrite(message: TargetRoas, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.TargetRoas
 */
export declare const TargetRoas: TargetRoas$Type;
declare class TargetSpend$Type extends MessageType<TargetSpend> {
    constructor();
    create(value?: PartialMessage<TargetSpend>): TargetSpend;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TargetSpend): TargetSpend;
    internalBinaryWrite(message: TargetSpend, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.TargetSpend
 */
export declare const TargetSpend: TargetSpend$Type;
declare class PercentCpc$Type extends MessageType<PercentCpc> {
    constructor();
    create(value?: PartialMessage<PercentCpc>): PercentCpc;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PercentCpc): PercentCpc;
    internalBinaryWrite(message: PercentCpc, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.common.PercentCpc
 */
export declare const PercentCpc: PercentCpc$Type;
export {};
