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 { BillingSetup } from "../resources/billing_setup";
/**
 * Request message for billing setup mutate operations.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateBillingSetupRequest
 */
export interface MutateBillingSetupRequest {
    /**
     * Required. Id of the customer to apply the billing setup mutate operation to.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. The operation to perform.
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.BillingSetupOperation operation = 2;
     */
    operation?: BillingSetupOperation;
}
/**
 * A single operation on a billing setup, which describes the cancellation of an
 * existing billing setup.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.BillingSetupOperation
 */
export interface BillingSetupOperation {
    /**
     * @generated from protobuf oneof: operation
     */
    operation: {
        oneofKind: "create";
        /**
         * Creates a billing setup. No resource name is expected for the new billing
         * setup.
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.BillingSetup create = 2;
         */
        create: BillingSetup;
    } | {
        oneofKind: "remove";
        /**
         * Resource name of the billing setup to remove. A setup cannot be
         * removed unless it is in a pending state or its scheduled start time is in
         * the future. The resource name looks like
         * `customers/{customer_id}/billingSetups/{billing_id}`.
         *
         * @generated from protobuf field: string remove = 1;
         */
        remove: string;
    } | {
        oneofKind: undefined;
    };
}
/**
 * Response message for a billing setup operation.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateBillingSetupResponse
 */
export interface MutateBillingSetupResponse {
    /**
     * A result that identifies the resource affected by the mutate request.
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.MutateBillingSetupResult result = 1;
     */
    result?: MutateBillingSetupResult;
}
/**
 * Result for a single billing setup mutate.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateBillingSetupResult
 */
export interface MutateBillingSetupResult {
    /**
     * Returned for successful operations.
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
}
declare class MutateBillingSetupRequest$Type extends MessageType<MutateBillingSetupRequest> {
    constructor();
    create(value?: PartialMessage<MutateBillingSetupRequest>): MutateBillingSetupRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateBillingSetupRequest): MutateBillingSetupRequest;
    internalBinaryWrite(message: MutateBillingSetupRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateBillingSetupRequest
 */
export declare const MutateBillingSetupRequest: MutateBillingSetupRequest$Type;
declare class BillingSetupOperation$Type extends MessageType<BillingSetupOperation> {
    constructor();
    create(value?: PartialMessage<BillingSetupOperation>): BillingSetupOperation;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BillingSetupOperation): BillingSetupOperation;
    internalBinaryWrite(message: BillingSetupOperation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.BillingSetupOperation
 */
export declare const BillingSetupOperation: BillingSetupOperation$Type;
declare class MutateBillingSetupResponse$Type extends MessageType<MutateBillingSetupResponse> {
    constructor();
    create(value?: PartialMessage<MutateBillingSetupResponse>): MutateBillingSetupResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateBillingSetupResponse): MutateBillingSetupResponse;
    internalBinaryWrite(message: MutateBillingSetupResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateBillingSetupResponse
 */
export declare const MutateBillingSetupResponse: MutateBillingSetupResponse$Type;
declare class MutateBillingSetupResult$Type extends MessageType<MutateBillingSetupResult> {
    constructor();
    create(value?: PartialMessage<MutateBillingSetupResult>): MutateBillingSetupResult;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateBillingSetupResult): MutateBillingSetupResult;
    internalBinaryWrite(message: MutateBillingSetupResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateBillingSetupResult
 */
export declare const MutateBillingSetupResult: MutateBillingSetupResult$Type;
/**
 * @generated ServiceType for protobuf service google.ads.googleads.v11.services.BillingSetupService
 */
export declare const BillingSetupService: ServiceType;
export {};
