import { ServiceType } from "@protobuf-ts/runtime-rpc";
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 { Status } from "../../google/rpc/status";
import { CampaignExperiment } from "../resources/campaign_experiment";
import { FieldMask } from "../../google/protobuf/field_mask";
import { ResponseContentTypeEnum_ResponseContentType } from "../enums/response_content_type";
/**
 * Request message for [CampaignExperimentService.MutateCampaignExperiments][google.ads.googleads.v11.services.CampaignExperimentService.MutateCampaignExperiments].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateCampaignExperimentsRequest
 */
export interface MutateCampaignExperimentsRequest {
    /**
     * Required. The ID of the customer whose campaign experiments are being modified.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. The list of operations to perform on individual campaign experiments.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.CampaignExperimentOperation operations = 2;
     */
    operations: CampaignExperimentOperation[];
    /**
     * If true, successful operations will be carried out and invalid
     * operations will return errors. If false, all operations will be carried
     * out in one transaction if and only if they are all valid.
     * Default is false.
     *
     * @generated from protobuf field: bool partial_failure = 3;
     */
    partialFailure: boolean;
    /**
     * If true, the request is validated but not executed. Only errors are
     * returned, not results.
     *
     * @generated from protobuf field: bool validate_only = 4;
     */
    validateOnly: boolean;
    /**
     * The response content type setting. Determines whether the mutable resource
     * or just the resource name should be returned post mutation.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.ResponseContentTypeEnum.ResponseContentType response_content_type = 5;
     */
    responseContentType: ResponseContentTypeEnum_ResponseContentType;
}
/**
 * A single update operation on a campaign experiment.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CampaignExperimentOperation
 */
export interface CampaignExperimentOperation {
    /**
     * FieldMask that determines which resource fields are modified in an update.
     *
     * @generated from protobuf field: google.protobuf.FieldMask update_mask = 3;
     */
    updateMask?: FieldMask;
    /**
     * @generated from protobuf oneof: operation
     */
    operation: {
        oneofKind: "update";
        /**
         * Update operation: The campaign experiment is expected to have a valid
         * resource name.
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.CampaignExperiment update = 1;
         */
        update: CampaignExperiment;
    } | {
        oneofKind: "remove";
        /**
         * Remove operation: The campaign experiment is expected to have a valid
         * resource name, in this format:
         *
         * `customers/{customer_id}/campaignExperiments/{campaign_experiment_id}`
         *
         * @generated from protobuf field: string remove = 2;
         */
        remove: string;
    } | {
        oneofKind: undefined;
    };
}
/**
 * Response message for campaign experiment mutate.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateCampaignExperimentsResponse
 */
export interface MutateCampaignExperimentsResponse {
    /**
     * Errors that pertain to operation failures in the partial failure mode.
     * Returned only when partial_failure = true and all errors occur inside the
     * operations. If any errors occur outside the operations (for example, auth
     * errors), we return an RPC level error.
     *
     * @generated from protobuf field: google.rpc.Status partial_failure_error = 3;
     */
    partialFailureError?: Status;
    /**
     * All results for the mutate.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.MutateCampaignExperimentResult results = 2;
     */
    results: MutateCampaignExperimentResult[];
}
/**
 * The result for the campaign experiment mutate.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateCampaignExperimentResult
 */
export interface MutateCampaignExperimentResult {
    /**
     * Returned for successful operations.
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * The mutated campaign experiment with only mutable fields after mutate. The
     * field will only be returned when response_content_type is set to
     * "MUTABLE_RESOURCE".
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.CampaignExperiment campaign_experiment = 2;
     */
    campaignExperiment?: CampaignExperiment;
}
/**
 * Request message for [CampaignExperimentService.CreateCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.CreateCampaignExperiment].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CreateCampaignExperimentRequest
 */
export interface CreateCampaignExperimentRequest {
    /**
     * Required. The ID of the customer whose campaign experiment is being created.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. The campaign experiment to be created.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.CampaignExperiment campaign_experiment = 2;
     */
    campaignExperiment?: CampaignExperiment;
    /**
     * If true, the request is validated but not executed. Only errors are
     * returned, not results.
     *
     * @generated from protobuf field: bool validate_only = 3;
     */
    validateOnly: boolean;
}
/**
 * Message used as metadata returned in Long Running Operations for
 * CreateCampaignExperimentRequest
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CreateCampaignExperimentMetadata
 */
export interface CreateCampaignExperimentMetadata {
    /**
     * Resource name of campaign experiment created.
     *
     * @generated from protobuf field: string campaign_experiment = 1;
     */
    campaignExperiment: string;
}
/**
 * Request message for [CampaignExperimentService.GraduateCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.GraduateCampaignExperiment].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.GraduateCampaignExperimentRequest
 */
export interface GraduateCampaignExperimentRequest {
    /**
     * Required. The resource name of the campaign experiment to graduate.
     *
     * @generated from protobuf field: string campaign_experiment = 1;
     */
    campaignExperiment: string;
    /**
     * Required. Resource name of the budget to attach to the campaign graduated from the
     * experiment.
     *
     * @generated from protobuf field: string campaign_budget = 2;
     */
    campaignBudget: string;
    /**
     * If true, the request is validated but not executed. Only errors are
     * returned, not results.
     *
     * @generated from protobuf field: bool validate_only = 3;
     */
    validateOnly: boolean;
}
/**
 * Response message for campaign experiment graduate.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.GraduateCampaignExperimentResponse
 */
export interface GraduateCampaignExperimentResponse {
    /**
     * The resource name of the campaign from the graduated experiment.
     * This campaign is the same one as CampaignExperiment.experiment_campaign.
     *
     * @generated from protobuf field: string graduated_campaign = 1;
     */
    graduatedCampaign: string;
}
/**
 * Request message for [CampaignExperimentService.PromoteCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.PromoteCampaignExperiment].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.PromoteCampaignExperimentRequest
 */
export interface PromoteCampaignExperimentRequest {
    /**
     * Required. The resource name of the campaign experiment to promote.
     *
     * @generated from protobuf field: string campaign_experiment = 1;
     */
    campaignExperiment: string;
    /**
     * If true, the request is validated but no Long Running Operation is created.
     * Only errors are returned.
     *
     * @generated from protobuf field: bool validate_only = 2;
     */
    validateOnly: boolean;
}
/**
 * Request message for [CampaignExperimentService.EndCampaignExperiment][google.ads.googleads.v11.services.CampaignExperimentService.EndCampaignExperiment].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.EndCampaignExperimentRequest
 */
export interface EndCampaignExperimentRequest {
    /**
     * Required. The resource name of the campaign experiment to end.
     *
     * @generated from protobuf field: string campaign_experiment = 1;
     */
    campaignExperiment: string;
    /**
     * If true, the request is validated but not executed. Only errors are
     * returned, not results.
     *
     * @generated from protobuf field: bool validate_only = 2;
     */
    validateOnly: boolean;
}
/**
 * Request message for
 * [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v11.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsRequest
 */
export interface ListCampaignExperimentAsyncErrorsRequest {
    /**
     * Required. The name of the campaign experiment from which to retrieve the async
     * errors.
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Token of the page to retrieve. If not specified, the first
     * page of results will be returned. Use the value obtained from
     * `next_page_token` in the previous response in order to request
     * the next page of results.
     *
     * @generated from protobuf field: string page_token = 2;
     */
    pageToken: string;
    /**
     * Number of elements to retrieve in a single page.
     * When a page request is too large, the server may decide to
     * further limit the number of returned resources.
     *
     * @generated from protobuf field: int32 page_size = 3;
     */
    pageSize: number;
}
/**
 * Response message for
 * [CampaignExperimentService.ListCampaignExperimentAsyncErrors][google.ads.googleads.v11.services.CampaignExperimentService.ListCampaignExperimentAsyncErrors].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsResponse
 */
export interface ListCampaignExperimentAsyncErrorsResponse {
    /**
     * Details of the errors when performing the asynchronous operation.
     *
     * @generated from protobuf field: repeated google.rpc.Status errors = 1;
     */
    errors: Status[];
    /**
     * Pagination token used to retrieve the next page of results.
     * Pass the content of this string as the `page_token` attribute of
     * the next request. `next_page_token` is not returned for the last
     * page.
     *
     * @generated from protobuf field: string next_page_token = 2;
     */
    nextPageToken: string;
}
declare class MutateCampaignExperimentsRequest$Type extends MessageType<MutateCampaignExperimentsRequest> {
    constructor();
    create(value?: PartialMessage<MutateCampaignExperimentsRequest>): MutateCampaignExperimentsRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateCampaignExperimentsRequest): MutateCampaignExperimentsRequest;
    internalBinaryWrite(message: MutateCampaignExperimentsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateCampaignExperimentsRequest
 */
export declare const MutateCampaignExperimentsRequest: MutateCampaignExperimentsRequest$Type;
declare class CampaignExperimentOperation$Type extends MessageType<CampaignExperimentOperation> {
    constructor();
    create(value?: PartialMessage<CampaignExperimentOperation>): CampaignExperimentOperation;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CampaignExperimentOperation): CampaignExperimentOperation;
    internalBinaryWrite(message: CampaignExperimentOperation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CampaignExperimentOperation
 */
export declare const CampaignExperimentOperation: CampaignExperimentOperation$Type;
declare class MutateCampaignExperimentsResponse$Type extends MessageType<MutateCampaignExperimentsResponse> {
    constructor();
    create(value?: PartialMessage<MutateCampaignExperimentsResponse>): MutateCampaignExperimentsResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateCampaignExperimentsResponse): MutateCampaignExperimentsResponse;
    internalBinaryWrite(message: MutateCampaignExperimentsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateCampaignExperimentsResponse
 */
export declare const MutateCampaignExperimentsResponse: MutateCampaignExperimentsResponse$Type;
declare class MutateCampaignExperimentResult$Type extends MessageType<MutateCampaignExperimentResult> {
    constructor();
    create(value?: PartialMessage<MutateCampaignExperimentResult>): MutateCampaignExperimentResult;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateCampaignExperimentResult): MutateCampaignExperimentResult;
    internalBinaryWrite(message: MutateCampaignExperimentResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateCampaignExperimentResult
 */
export declare const MutateCampaignExperimentResult: MutateCampaignExperimentResult$Type;
declare class CreateCampaignExperimentRequest$Type extends MessageType<CreateCampaignExperimentRequest> {
    constructor();
    create(value?: PartialMessage<CreateCampaignExperimentRequest>): CreateCampaignExperimentRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateCampaignExperimentRequest): CreateCampaignExperimentRequest;
    internalBinaryWrite(message: CreateCampaignExperimentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CreateCampaignExperimentRequest
 */
export declare const CreateCampaignExperimentRequest: CreateCampaignExperimentRequest$Type;
declare class CreateCampaignExperimentMetadata$Type extends MessageType<CreateCampaignExperimentMetadata> {
    constructor();
    create(value?: PartialMessage<CreateCampaignExperimentMetadata>): CreateCampaignExperimentMetadata;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateCampaignExperimentMetadata): CreateCampaignExperimentMetadata;
    internalBinaryWrite(message: CreateCampaignExperimentMetadata, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CreateCampaignExperimentMetadata
 */
export declare const CreateCampaignExperimentMetadata: CreateCampaignExperimentMetadata$Type;
declare class GraduateCampaignExperimentRequest$Type extends MessageType<GraduateCampaignExperimentRequest> {
    constructor();
    create(value?: PartialMessage<GraduateCampaignExperimentRequest>): GraduateCampaignExperimentRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GraduateCampaignExperimentRequest): GraduateCampaignExperimentRequest;
    internalBinaryWrite(message: GraduateCampaignExperimentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.GraduateCampaignExperimentRequest
 */
export declare const GraduateCampaignExperimentRequest: GraduateCampaignExperimentRequest$Type;
declare class GraduateCampaignExperimentResponse$Type extends MessageType<GraduateCampaignExperimentResponse> {
    constructor();
    create(value?: PartialMessage<GraduateCampaignExperimentResponse>): GraduateCampaignExperimentResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GraduateCampaignExperimentResponse): GraduateCampaignExperimentResponse;
    internalBinaryWrite(message: GraduateCampaignExperimentResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.GraduateCampaignExperimentResponse
 */
export declare const GraduateCampaignExperimentResponse: GraduateCampaignExperimentResponse$Type;
declare class PromoteCampaignExperimentRequest$Type extends MessageType<PromoteCampaignExperimentRequest> {
    constructor();
    create(value?: PartialMessage<PromoteCampaignExperimentRequest>): PromoteCampaignExperimentRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PromoteCampaignExperimentRequest): PromoteCampaignExperimentRequest;
    internalBinaryWrite(message: PromoteCampaignExperimentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.PromoteCampaignExperimentRequest
 */
export declare const PromoteCampaignExperimentRequest: PromoteCampaignExperimentRequest$Type;
declare class EndCampaignExperimentRequest$Type extends MessageType<EndCampaignExperimentRequest> {
    constructor();
    create(value?: PartialMessage<EndCampaignExperimentRequest>): EndCampaignExperimentRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EndCampaignExperimentRequest): EndCampaignExperimentRequest;
    internalBinaryWrite(message: EndCampaignExperimentRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.EndCampaignExperimentRequest
 */
export declare const EndCampaignExperimentRequest: EndCampaignExperimentRequest$Type;
declare class ListCampaignExperimentAsyncErrorsRequest$Type extends MessageType<ListCampaignExperimentAsyncErrorsRequest> {
    constructor();
    create(value?: PartialMessage<ListCampaignExperimentAsyncErrorsRequest>): ListCampaignExperimentAsyncErrorsRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListCampaignExperimentAsyncErrorsRequest): ListCampaignExperimentAsyncErrorsRequest;
    internalBinaryWrite(message: ListCampaignExperimentAsyncErrorsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsRequest
 */
export declare const ListCampaignExperimentAsyncErrorsRequest: ListCampaignExperimentAsyncErrorsRequest$Type;
declare class ListCampaignExperimentAsyncErrorsResponse$Type extends MessageType<ListCampaignExperimentAsyncErrorsResponse> {
    constructor();
    create(value?: PartialMessage<ListCampaignExperimentAsyncErrorsResponse>): ListCampaignExperimentAsyncErrorsResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListCampaignExperimentAsyncErrorsResponse): ListCampaignExperimentAsyncErrorsResponse;
    internalBinaryWrite(message: ListCampaignExperimentAsyncErrorsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsResponse
 */
export declare const ListCampaignExperimentAsyncErrorsResponse: ListCampaignExperimentAsyncErrorsResponse$Type;
/**
 * @generated ServiceType for protobuf service google.ads.googleads.v11.services.CampaignExperimentService
 */
export declare const CampaignExperimentService: ServiceType;
export {};
