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 { BudgetSimulationPointList } from "../common/simulation";
import { TargetImpressionShareSimulationPointList } from "../common/simulation";
import { TargetRoasSimulationPointList } from "../common/simulation";
import { TargetCpaSimulationPointList } from "../common/simulation";
import { CpcBidSimulationPointList } from "../common/simulation";
import { SimulationModificationMethodEnum_SimulationModificationMethod } from "../enums/simulation_modification_method";
import { SimulationTypeEnum_SimulationType } from "../enums/simulation_type";
/**
 * A campaign simulation. Supported combinations of advertising
 * channel type, simulation type and simulation modification
 * method is detailed below respectively.
 *
 * SEARCH - CPC_BID - UNIFORM
 * SEARCH - CPC_BID - SCALING
 * SEARCH - TARGET_CPA - UNIFORM
 * SEARCH - TARGET_CPA - SCALING
 * SEARCH - TARGET_ROAS - UNIFORM
 * SEARCH - TARGET_IMPRESSION_SHARE - UNIFORM
 * SEARCH - BUDGET - UNIFORM
 * SHOPPING - BUDGET - UNIFORM
 * SHOPPING - TARGET_ROAS - UNIFORM
 * MULTI_CHANNEL - TARGET_CPA - UNIFORM
 * DISCOVERY - TARGET_CPA - DEFAULT
 * DISPLAY - TARGET_CPA - UNIFORM
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CampaignSimulation
 */
export interface CampaignSimulation {
    /**
     * Output only. The resource name of the campaign simulation.
     * Campaign simulation resource names have the form:
     *
     * `customers/{customer_id}/campaignSimulations/{campaign_id}~{type}~{modification_method}~{start_date}~{end_date}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. Campaign id of the simulation.
     *
     * @generated from protobuf field: int64 campaign_id = 2;
     */
    campaignId: bigint;
    /**
     * Output only. The field that the simulation modifies.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.SimulationTypeEnum.SimulationType type = 3;
     */
    type: SimulationTypeEnum_SimulationType;
    /**
     * Output only. How the simulation modifies the field.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.SimulationModificationMethodEnum.SimulationModificationMethod modification_method = 4;
     */
    modificationMethod: SimulationModificationMethodEnum_SimulationModificationMethod;
    /**
     * Output only. First day on which the simulation is based, in YYYY-MM-DD format.
     *
     * @generated from protobuf field: string start_date = 5;
     */
    startDate: string;
    /**
     * Output only. Last day on which the simulation is based, in YYYY-MM-DD format
     *
     * @generated from protobuf field: string end_date = 6;
     */
    endDate: string;
    /**
     * @generated from protobuf oneof: point_list
     */
    pointList: {
        oneofKind: "cpcBidPointList";
        /**
         * Output only. Simulation points if the simulation type is CPC_BID.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.CpcBidSimulationPointList cpc_bid_point_list = 7;
         */
        cpcBidPointList: CpcBidSimulationPointList;
    } | {
        oneofKind: "targetCpaPointList";
        /**
         * Output only. Simulation points if the simulation type is TARGET_CPA.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TargetCpaSimulationPointList target_cpa_point_list = 8;
         */
        targetCpaPointList: TargetCpaSimulationPointList;
    } | {
        oneofKind: "targetRoasPointList";
        /**
         * Output only. Simulation points if the simulation type is TARGET_ROAS.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TargetRoasSimulationPointList target_roas_point_list = 9;
         */
        targetRoasPointList: TargetRoasSimulationPointList;
    } | {
        oneofKind: "targetImpressionSharePointList";
        /**
         * Output only. Simulation points if the simulation type is TARGET_IMPRESSION_SHARE.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.TargetImpressionShareSimulationPointList target_impression_share_point_list = 10;
         */
        targetImpressionSharePointList: TargetImpressionShareSimulationPointList;
    } | {
        oneofKind: "budgetPointList";
        /**
         * Output only. Simulation points if the simulation type is BUDGET.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.BudgetSimulationPointList budget_point_list = 11;
         */
        budgetPointList: BudgetSimulationPointList;
    } | {
        oneofKind: undefined;
    };
}
declare class CampaignSimulation$Type extends MessageType<CampaignSimulation> {
    constructor();
    create(value?: PartialMessage<CampaignSimulation>): CampaignSimulation;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CampaignSimulation): CampaignSimulation;
    internalBinaryWrite(message: CampaignSimulation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CampaignSimulation
 */
export declare const CampaignSimulation: CampaignSimulation$Type;
export {};
