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 { CustomerUserAccessInvitation } from "../resources/customer_user_access_invitation";
/**
 * Request message for
 * [CustomerUserAccessInvitation.MutateCustomerUserAccessInvitation][]
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateCustomerUserAccessInvitationRequest
 */
export interface MutateCustomerUserAccessInvitationRequest {
    /**
     * Required. The ID of the customer whose access invitation is being modified.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. The operation to perform on the access invitation
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.CustomerUserAccessInvitationOperation operation = 2;
     */
    operation?: CustomerUserAccessInvitationOperation;
}
/**
 * A single operation (create or remove) on customer user access invitation.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CustomerUserAccessInvitationOperation
 */
export interface CustomerUserAccessInvitationOperation {
    /**
     * @generated from protobuf oneof: operation
     */
    operation: {
        oneofKind: "create";
        /**
         * Create operation: No resource name is expected for the new access
         * invitation.
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.CustomerUserAccessInvitation create = 1;
         */
        create: CustomerUserAccessInvitation;
    } | {
        oneofKind: "remove";
        /**
         * Remove operation: A resource name for the revoke invitation is
         * expected, in this format:
         *
         * `customers/{customer_id}/customerUserAccessInvitations/{invitation_id}`
         *
         * @generated from protobuf field: string remove = 2;
         */
        remove: string;
    } | {
        oneofKind: undefined;
    };
}
/**
 * Response message for access invitation mutate.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateCustomerUserAccessInvitationResponse
 */
export interface MutateCustomerUserAccessInvitationResponse {
    /**
     * Result for the mutate.
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.MutateCustomerUserAccessInvitationResult result = 1;
     */
    result?: MutateCustomerUserAccessInvitationResult;
}
/**
 * The result for the access invitation mutate.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.MutateCustomerUserAccessInvitationResult
 */
export interface MutateCustomerUserAccessInvitationResult {
    /**
     * Returned for successful operations.
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
}
declare class MutateCustomerUserAccessInvitationRequest$Type extends MessageType<MutateCustomerUserAccessInvitationRequest> {
    constructor();
    create(value?: PartialMessage<MutateCustomerUserAccessInvitationRequest>): MutateCustomerUserAccessInvitationRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateCustomerUserAccessInvitationRequest): MutateCustomerUserAccessInvitationRequest;
    internalBinaryWrite(message: MutateCustomerUserAccessInvitationRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateCustomerUserAccessInvitationRequest
 */
export declare const MutateCustomerUserAccessInvitationRequest: MutateCustomerUserAccessInvitationRequest$Type;
declare class CustomerUserAccessInvitationOperation$Type extends MessageType<CustomerUserAccessInvitationOperation> {
    constructor();
    create(value?: PartialMessage<CustomerUserAccessInvitationOperation>): CustomerUserAccessInvitationOperation;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomerUserAccessInvitationOperation): CustomerUserAccessInvitationOperation;
    internalBinaryWrite(message: CustomerUserAccessInvitationOperation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CustomerUserAccessInvitationOperation
 */
export declare const CustomerUserAccessInvitationOperation: CustomerUserAccessInvitationOperation$Type;
declare class MutateCustomerUserAccessInvitationResponse$Type extends MessageType<MutateCustomerUserAccessInvitationResponse> {
    constructor();
    create(value?: PartialMessage<MutateCustomerUserAccessInvitationResponse>): MutateCustomerUserAccessInvitationResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateCustomerUserAccessInvitationResponse): MutateCustomerUserAccessInvitationResponse;
    internalBinaryWrite(message: MutateCustomerUserAccessInvitationResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateCustomerUserAccessInvitationResponse
 */
export declare const MutateCustomerUserAccessInvitationResponse: MutateCustomerUserAccessInvitationResponse$Type;
declare class MutateCustomerUserAccessInvitationResult$Type extends MessageType<MutateCustomerUserAccessInvitationResult> {
    constructor();
    create(value?: PartialMessage<MutateCustomerUserAccessInvitationResult>): MutateCustomerUserAccessInvitationResult;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MutateCustomerUserAccessInvitationResult): MutateCustomerUserAccessInvitationResult;
    internalBinaryWrite(message: MutateCustomerUserAccessInvitationResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.MutateCustomerUserAccessInvitationResult
 */
export declare const MutateCustomerUserAccessInvitationResult: MutateCustomerUserAccessInvitationResult$Type;
/**
 * @generated ServiceType for protobuf service google.ads.googleads.v11.services.CustomerUserAccessInvitationService
 */
export declare const CustomerUserAccessInvitationService: ServiceType;
export {};
