import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
import type { ListCampaignExperimentAsyncErrorsResponse } from "./campaign_experiment_service";
import type { ListCampaignExperimentAsyncErrorsRequest } from "./campaign_experiment_service";
import type { Empty } from "../../google/protobuf/empty";
import type { EndCampaignExperimentRequest } from "./campaign_experiment_service";
import type { PromoteCampaignExperimentRequest } from "./campaign_experiment_service";
import type { GraduateCampaignExperimentResponse } from "./campaign_experiment_service";
import type { GraduateCampaignExperimentRequest } from "./campaign_experiment_service";
import type { MutateCampaignExperimentsResponse } from "./campaign_experiment_service";
import type { MutateCampaignExperimentsRequest } from "./campaign_experiment_service";
import type { Operation } from "../../google/longrunning/operations";
import type { CreateCampaignExperimentRequest } from "./campaign_experiment_service";
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
/**
 * CampaignExperimentService manages the life cycle of campaign experiments.
 * It is used to create new experiments from drafts, modify experiment
 * properties, promote changes in an experiment back to its base campaign,
 * graduate experiments into new stand-alone campaigns, and to remove an
 * experiment.
 *
 * An experiment consists of two variants or arms - the base campaign and the
 * experiment campaign, directing a fixed share of traffic to each arm.
 * A campaign experiment is created from a draft of changes to the base campaign
 * and will be a snapshot of changes in the draft at the time of creation.
 *
 * @generated from protobuf service google.ads.googleads.v11.services.CampaignExperimentService
 */
export interface ICampaignExperimentServiceClient {
    /**
     * Creates a campaign experiment based on a campaign draft. The draft campaign
     * will be forked into a real campaign (called the experiment campaign) that
     * will begin serving ads if successfully created.
     *
     * The campaign experiment is created immediately with status INITIALIZING.
     * This method return a long running operation that tracks the forking of the
     * draft campaign. If the forking fails, a list of errors can be retrieved
     * using the ListCampaignExperimentAsyncErrors method. The operation's
     * metadata will be a StringValue containing the resource name of the created
     * campaign experiment.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [DatabaseError]()
     *   [DateError]()
     *   [DateRangeError]()
     *   [FieldError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RangeError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: CreateCampaignExperiment(google.ads.googleads.v11.services.CreateCampaignExperimentRequest) returns (google.longrunning.Operation);
     */
    createCampaignExperiment(input: CreateCampaignExperimentRequest, options?: RpcOptions): UnaryCall<CreateCampaignExperimentRequest, Operation>;
    /**
     * Updates campaign experiments. Operation statuses are returned.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: MutateCampaignExperiments(google.ads.googleads.v11.services.MutateCampaignExperimentsRequest) returns (google.ads.googleads.v11.services.MutateCampaignExperimentsResponse);
     */
    mutateCampaignExperiments(input: MutateCampaignExperimentsRequest, options?: RpcOptions): UnaryCall<MutateCampaignExperimentsRequest, MutateCampaignExperimentsResponse>;
    /**
     * Graduates a campaign experiment to a full campaign. The base and experiment
     * campaigns will start running independently with their own budgets.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [MutateError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: GraduateCampaignExperiment(google.ads.googleads.v11.services.GraduateCampaignExperimentRequest) returns (google.ads.googleads.v11.services.GraduateCampaignExperimentResponse);
     */
    graduateCampaignExperiment(input: GraduateCampaignExperimentRequest, options?: RpcOptions): UnaryCall<GraduateCampaignExperimentRequest, GraduateCampaignExperimentResponse>;
    /**
     * Promotes the changes in a experiment campaign back to the base campaign.
     *
     * The campaign experiment is updated immediately with status PROMOTING.
     * This method return a long running operation that tracks the promoting of
     * the experiment campaign. If the promoting fails, a list of errors can be
     * retrieved using the ListCampaignExperimentAsyncErrors method.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: PromoteCampaignExperiment(google.ads.googleads.v11.services.PromoteCampaignExperimentRequest) returns (google.longrunning.Operation);
     */
    promoteCampaignExperiment(input: PromoteCampaignExperimentRequest, options?: RpcOptions): UnaryCall<PromoteCampaignExperimentRequest, Operation>;
    /**
     * Immediately ends a campaign experiment, changing the experiment's scheduled
     * end date and without waiting for end of day. End date is updated to be the
     * time of the request.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: EndCampaignExperiment(google.ads.googleads.v11.services.EndCampaignExperimentRequest) returns (google.protobuf.Empty);
     */
    endCampaignExperiment(input: EndCampaignExperimentRequest, options?: RpcOptions): UnaryCall<EndCampaignExperimentRequest, Empty>;
    /**
     * Returns all errors that occurred during CampaignExperiment create or
     * promote (whichever occurred last).
     * Supports standard list paging.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: ListCampaignExperimentAsyncErrors(google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsRequest) returns (google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsResponse);
     */
    listCampaignExperimentAsyncErrors(input: ListCampaignExperimentAsyncErrorsRequest, options?: RpcOptions): UnaryCall<ListCampaignExperimentAsyncErrorsRequest, ListCampaignExperimentAsyncErrorsResponse>;
}
/**
 * CampaignExperimentService manages the life cycle of campaign experiments.
 * It is used to create new experiments from drafts, modify experiment
 * properties, promote changes in an experiment back to its base campaign,
 * graduate experiments into new stand-alone campaigns, and to remove an
 * experiment.
 *
 * An experiment consists of two variants or arms - the base campaign and the
 * experiment campaign, directing a fixed share of traffic to each arm.
 * A campaign experiment is created from a draft of changes to the base campaign
 * and will be a snapshot of changes in the draft at the time of creation.
 *
 * @generated from protobuf service google.ads.googleads.v11.services.CampaignExperimentService
 */
export declare class CampaignExperimentServiceClient implements ICampaignExperimentServiceClient, ServiceInfo {
    private readonly _transport;
    typeName: string;
    methods: import("@protobuf-ts/runtime-rpc").MethodInfo<any, any>[];
    options: {
        [extensionName: string]: import("@protobuf-ts/runtime").JsonValue;
    };
    constructor(_transport: RpcTransport);
    /**
     * Creates a campaign experiment based on a campaign draft. The draft campaign
     * will be forked into a real campaign (called the experiment campaign) that
     * will begin serving ads if successfully created.
     *
     * The campaign experiment is created immediately with status INITIALIZING.
     * This method return a long running operation that tracks the forking of the
     * draft campaign. If the forking fails, a list of errors can be retrieved
     * using the ListCampaignExperimentAsyncErrors method. The operation's
     * metadata will be a StringValue containing the resource name of the created
     * campaign experiment.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [DatabaseError]()
     *   [DateError]()
     *   [DateRangeError]()
     *   [FieldError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RangeError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: CreateCampaignExperiment(google.ads.googleads.v11.services.CreateCampaignExperimentRequest) returns (google.longrunning.Operation);
     */
    createCampaignExperiment(input: CreateCampaignExperimentRequest, options?: RpcOptions): UnaryCall<CreateCampaignExperimentRequest, Operation>;
    /**
     * Updates campaign experiments. Operation statuses are returned.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: MutateCampaignExperiments(google.ads.googleads.v11.services.MutateCampaignExperimentsRequest) returns (google.ads.googleads.v11.services.MutateCampaignExperimentsResponse);
     */
    mutateCampaignExperiments(input: MutateCampaignExperimentsRequest, options?: RpcOptions): UnaryCall<MutateCampaignExperimentsRequest, MutateCampaignExperimentsResponse>;
    /**
     * Graduates a campaign experiment to a full campaign. The base and experiment
     * campaigns will start running independently with their own budgets.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [MutateError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: GraduateCampaignExperiment(google.ads.googleads.v11.services.GraduateCampaignExperimentRequest) returns (google.ads.googleads.v11.services.GraduateCampaignExperimentResponse);
     */
    graduateCampaignExperiment(input: GraduateCampaignExperimentRequest, options?: RpcOptions): UnaryCall<GraduateCampaignExperimentRequest, GraduateCampaignExperimentResponse>;
    /**
     * Promotes the changes in a experiment campaign back to the base campaign.
     *
     * The campaign experiment is updated immediately with status PROMOTING.
     * This method return a long running operation that tracks the promoting of
     * the experiment campaign. If the promoting fails, a list of errors can be
     * retrieved using the ListCampaignExperimentAsyncErrors method.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: PromoteCampaignExperiment(google.ads.googleads.v11.services.PromoteCampaignExperimentRequest) returns (google.longrunning.Operation);
     */
    promoteCampaignExperiment(input: PromoteCampaignExperimentRequest, options?: RpcOptions): UnaryCall<PromoteCampaignExperimentRequest, Operation>;
    /**
     * Immediately ends a campaign experiment, changing the experiment's scheduled
     * end date and without waiting for end of day. End date is updated to be the
     * time of the request.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [CampaignExperimentError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: EndCampaignExperiment(google.ads.googleads.v11.services.EndCampaignExperimentRequest) returns (google.protobuf.Empty);
     */
    endCampaignExperiment(input: EndCampaignExperimentRequest, options?: RpcOptions): UnaryCall<EndCampaignExperimentRequest, Empty>;
    /**
     * Returns all errors that occurred during CampaignExperiment create or
     * promote (whichever occurred last).
     * Supports standard list paging.
     *
     * List of thrown errors:
     *   [AuthenticationError]()
     *   [AuthorizationError]()
     *   [HeaderError]()
     *   [InternalError]()
     *   [QuotaError]()
     *   [RequestError]()
     *
     * @generated from protobuf rpc: ListCampaignExperimentAsyncErrors(google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsRequest) returns (google.ads.googleads.v11.services.ListCampaignExperimentAsyncErrorsResponse);
     */
    listCampaignExperimentAsyncErrors(input: ListCampaignExperimentAsyncErrorsRequest, options?: RpcOptions): UnaryCall<ListCampaignExperimentAsyncErrorsRequest, ListCampaignExperimentAsyncErrorsResponse>;
}
