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 { ConversionEnvironmentEnum_ConversionEnvironment } from "../enums/conversion_environment_enum";
import { UserIdentifier } from "../common/offline_user_data";
import { Status } from "../../google/rpc/status";
/**
 * Request message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v11.services.ConversionUploadService.UploadClickConversions].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.UploadClickConversionsRequest
 */
export interface UploadClickConversionsRequest {
    /**
     * Required. The ID of the customer performing the upload.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. The conversions that are being uploaded.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.ClickConversion conversions = 2;
     */
    conversions: ClickConversion[];
    /**
     * Required. 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.
     * This should always be set to true.
     * See
     * https://developers.google.com/google-ads/api/docs/best-practices/partial-failures
     * for more information about partial failure.
     *
     * @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;
}
/**
 * Response message for [ConversionUploadService.UploadClickConversions][google.ads.googleads.v11.services.ConversionUploadService.UploadClickConversions].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.UploadClickConversionsResponse
 */
export interface UploadClickConversionsResponse {
    /**
     * Errors that pertain to conversion failures in the partial failure mode.
     * Returned when all errors occur inside the conversions. If any errors occur
     * outside the conversions (for example, auth errors), we return an RPC level
     * error. See
     * https://developers.google.com/google-ads/api/docs/best-practices/partial-failures
     * for more information about partial failure.
     *
     * @generated from protobuf field: google.rpc.Status partial_failure_error = 1;
     */
    partialFailureError?: Status;
    /**
     * Returned for successfully processed conversions. Proto will be empty for
     * rows that received an error. Results are not returned when validate_only is
     * true.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.ClickConversionResult results = 2;
     */
    results: ClickConversionResult[];
}
/**
 * Request message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v11.services.ConversionUploadService.UploadCallConversions].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.UploadCallConversionsRequest
 */
export interface UploadCallConversionsRequest {
    /**
     * Required. The ID of the customer performing the upload.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. The conversions that are being uploaded.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.CallConversion conversions = 2;
     */
    conversions: CallConversion[];
    /**
     * Required. 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.
     * This should always be set to true.
     * See
     * https://developers.google.com/google-ads/api/docs/best-practices/partial-failures
     * for more information about partial failure.
     *
     * @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;
}
/**
 * Response message for [ConversionUploadService.UploadCallConversions][google.ads.googleads.v11.services.ConversionUploadService.UploadCallConversions].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.UploadCallConversionsResponse
 */
export interface UploadCallConversionsResponse {
    /**
     * Errors that pertain to conversion failures in the partial failure mode.
     * Returned when all errors occur inside the conversions. If any errors occur
     * outside the conversions (for example, auth errors), we return an RPC level
     * error. See
     * https://developers.google.com/google-ads/api/docs/best-practices/partial-failures
     * for more information about partial failure.
     *
     * @generated from protobuf field: google.rpc.Status partial_failure_error = 1;
     */
    partialFailureError?: Status;
    /**
     * Returned for successfully processed conversions. Proto will be empty for
     * rows that received an error. Results are not returned when validate_only is
     * true.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.CallConversionResult results = 2;
     */
    results: CallConversionResult[];
}
/**
 * A click conversion.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.ClickConversion
 */
export interface ClickConversion {
    /**
     * The Google click ID (gclid) associated with this conversion.
     *
     * @generated from protobuf field: optional string gclid = 9;
     */
    gclid?: string;
    /**
     * The click identifier for clicks associated with app conversions and
     * originating from iOS devices starting with iOS14.
     *
     * @generated from protobuf field: string gbraid = 18;
     */
    gbraid: string;
    /**
     * The click identifier for clicks associated with web conversions and
     * originating from iOS devices starting with iOS14.
     *
     * @generated from protobuf field: string wbraid = 19;
     */
    wbraid: string;
    /**
     * Resource name of the conversion action associated with this conversion.
     * Note: Although this resource name consists of a customer id and a
     * conversion action id, validation will ignore the customer id and use the
     * conversion action id as the sole identifier of the conversion action.
     *
     * @generated from protobuf field: optional string conversion_action = 10;
     */
    conversionAction?: string;
    /**
     * The date time at which the conversion occurred. Must be after
     * the click time. The timezone must be specified. The format is
     * "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
     *
     * @generated from protobuf field: optional string conversion_date_time = 11;
     */
    conversionDateTime?: string;
    /**
     * The value of the conversion for the advertiser.
     *
     * @generated from protobuf field: optional double conversion_value = 12;
     */
    conversionValue?: number;
    /**
     * Currency associated with the conversion value. This is the ISO 4217
     * 3-character currency code. For example: USD, EUR.
     *
     * @generated from protobuf field: optional string currency_code = 13;
     */
    currencyCode?: string;
    /**
     * The order ID associated with the conversion. An order id can only be used
     * for one conversion per conversion action.
     *
     * @generated from protobuf field: optional string order_id = 14;
     */
    orderId?: string;
    /**
     * Additional data about externally attributed conversions. This field
     * is required for conversions with an externally attributed conversion
     * action, but should not be set otherwise.
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.ExternalAttributionData external_attribution_data = 7;
     */
    externalAttributionData?: ExternalAttributionData;
    /**
     * The custom variables associated with this conversion.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.CustomVariable custom_variables = 15;
     */
    customVariables: CustomVariable[];
    /**
     * The cart data associated with this conversion.
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.CartData cart_data = 16;
     */
    cartData?: CartData;
    /**
     * The user identifiers associated with this conversion. Only hashed_email and
     * hashed_phone_number are supported for conversion uploads. The maximum
     * number of user identifiers for each conversion is 5.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.UserIdentifier user_identifiers = 17;
     */
    userIdentifiers: UserIdentifier[];
    /**
     * The environment this conversion was recorded on, for example, App or Web.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.ConversionEnvironmentEnum.ConversionEnvironment conversion_environment = 20;
     */
    conversionEnvironment: ConversionEnvironmentEnum_ConversionEnvironment;
}
/**
 * A call conversion.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CallConversion
 */
export interface CallConversion {
    /**
     * The caller id from which this call was placed. Caller id is expected to be
     * in E.164 format with preceding '+' sign, for example, "+16502531234".
     *
     * @generated from protobuf field: optional string caller_id = 7;
     */
    callerId?: string;
    /**
     * The date time at which the call occurred. The timezone must be specified.
     * The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm",
     * for example, "2019-01-01 12:32:45-08:00".
     *
     * @generated from protobuf field: optional string call_start_date_time = 8;
     */
    callStartDateTime?: string;
    /**
     * Resource name of the conversion action associated with this conversion.
     * Note: Although this resource name consists of a customer id and a
     * conversion action id, validation will ignore the customer id and use the
     * conversion action id as the sole identifier of the conversion action.
     *
     * @generated from protobuf field: optional string conversion_action = 9;
     */
    conversionAction?: string;
    /**
     * The date time at which the conversion occurred. Must be after the call
     * time. The timezone must be specified. The format is
     * "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
     *
     * @generated from protobuf field: optional string conversion_date_time = 10;
     */
    conversionDateTime?: string;
    /**
     * The value of the conversion for the advertiser.
     *
     * @generated from protobuf field: optional double conversion_value = 11;
     */
    conversionValue?: number;
    /**
     * Currency associated with the conversion value. This is the ISO 4217
     * 3-character currency code. For example: USD, EUR.
     *
     * @generated from protobuf field: optional string currency_code = 12;
     */
    currencyCode?: string;
    /**
     * The custom variables associated with this conversion.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.CustomVariable custom_variables = 13;
     */
    customVariables: CustomVariable[];
}
/**
 * Contains additional information about externally attributed conversions.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.ExternalAttributionData
 */
export interface ExternalAttributionData {
    /**
     * Represents the fraction of the conversion that is attributed to the
     * Google Ads click.
     *
     * @generated from protobuf field: optional double external_attribution_credit = 3;
     */
    externalAttributionCredit?: number;
    /**
     * Specifies the attribution model name.
     *
     * @generated from protobuf field: optional string external_attribution_model = 4;
     */
    externalAttributionModel?: string;
}
/**
 * Identifying information for a successfully processed ClickConversion.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.ClickConversionResult
 */
export interface ClickConversionResult {
    /**
     * The Google Click ID (gclid) associated with this conversion.
     *
     * @generated from protobuf field: optional string gclid = 4;
     */
    gclid?: string;
    /**
     * The click identifier for clicks associated with app conversions and
     * originating from iOS devices starting with iOS14.
     *
     * @generated from protobuf field: string gbraid = 8;
     */
    gbraid: string;
    /**
     * The click identifier for clicks associated with web conversions and
     * originating from iOS devices starting with iOS14.
     *
     * @generated from protobuf field: string wbraid = 9;
     */
    wbraid: string;
    /**
     * Resource name of the conversion action associated with this conversion.
     *
     * @generated from protobuf field: optional string conversion_action = 5;
     */
    conversionAction?: string;
    /**
     * The date time at which the conversion occurred. The format is
     * "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
     *
     * @generated from protobuf field: optional string conversion_date_time = 6;
     */
    conversionDateTime?: string;
    /**
     * The user identifiers associated with this conversion. Only hashed_email and
     * hashed_phone_number are supported for conversion uploads. The maximum
     * number of user identifiers for each conversion is 5.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.UserIdentifier user_identifiers = 7;
     */
    userIdentifiers: UserIdentifier[];
}
/**
 * Identifying information for a successfully processed CallConversionUpload.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CallConversionResult
 */
export interface CallConversionResult {
    /**
     * The caller id from which this call was placed. Caller id is expected to be
     * in E.164 format with preceding '+' sign.
     *
     * @generated from protobuf field: optional string caller_id = 5;
     */
    callerId?: string;
    /**
     * The date time at which the call occurred. The format is
     * "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
     *
     * @generated from protobuf field: optional string call_start_date_time = 6;
     */
    callStartDateTime?: string;
    /**
     * Resource name of the conversion action associated with this conversion.
     *
     * @generated from protobuf field: optional string conversion_action = 7;
     */
    conversionAction?: string;
    /**
     * The date time at which the conversion occurred. The format is
     * "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
     *
     * @generated from protobuf field: optional string conversion_date_time = 8;
     */
    conversionDateTime?: string;
}
/**
 * A custom variable.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CustomVariable
 */
export interface CustomVariable {
    /**
     * Resource name of the custom variable associated with this conversion.
     * Note: Although this resource name consists of a customer id and a
     * conversion custom variable id, validation will ignore the customer id and
     * use the conversion custom variable id as the sole identifier of the
     * conversion custom variable.
     *
     * @generated from protobuf field: string conversion_custom_variable = 1;
     */
    conversionCustomVariable: string;
    /**
     * The value string of this custom variable.
     * The value of the custom variable should not contain private customer data,
     * such as email addresses or phone numbers.
     *
     * @generated from protobuf field: string value = 2;
     */
    value: string;
}
/**
 * Contains additional information about cart data.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CartData
 */
export interface CartData {
    /**
     * The Merchant Center ID where the items are uploaded.
     *
     * @generated from protobuf field: int64 merchant_id = 6;
     */
    merchantId: bigint;
    /**
     * The country code associated with the feed where the items are uploaded.
     *
     * @generated from protobuf field: string feed_country_code = 2;
     */
    feedCountryCode: string;
    /**
     * The language code associated with the feed where the items are uploaded.
     *
     * @generated from protobuf field: string feed_language_code = 3;
     */
    feedLanguageCode: string;
    /**
     * Sum of all transaction level discounts, such as free shipping and
     * coupon discounts for the whole cart. The currency code is the same
     * as that in the ClickConversion message.
     *
     * @generated from protobuf field: double local_transaction_cost = 4;
     */
    localTransactionCost: number;
    /**
     * Data of the items purchased.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.services.CartData.Item items = 5;
     */
    items: CartData_Item[];
}
/**
 * Contains data of the items purchased.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.CartData.Item
 */
export interface CartData_Item {
    /**
     * The shopping id of the item. Must be equal to the Merchant Center product
     * identifier.
     *
     * @generated from protobuf field: string product_id = 1;
     */
    productId: string;
    /**
     * Number of items sold.
     *
     * @generated from protobuf field: int32 quantity = 2;
     */
    quantity: number;
    /**
     * Unit price excluding tax, shipping, and any transaction
     * level discounts. The currency code is the same as that in the
     * ClickConversion message.
     *
     * @generated from protobuf field: double unit_price = 3;
     */
    unitPrice: number;
}
declare class UploadClickConversionsRequest$Type extends MessageType<UploadClickConversionsRequest> {
    constructor();
    create(value?: PartialMessage<UploadClickConversionsRequest>): UploadClickConversionsRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UploadClickConversionsRequest): UploadClickConversionsRequest;
    internalBinaryWrite(message: UploadClickConversionsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.UploadClickConversionsRequest
 */
export declare const UploadClickConversionsRequest: UploadClickConversionsRequest$Type;
declare class UploadClickConversionsResponse$Type extends MessageType<UploadClickConversionsResponse> {
    constructor();
    create(value?: PartialMessage<UploadClickConversionsResponse>): UploadClickConversionsResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UploadClickConversionsResponse): UploadClickConversionsResponse;
    internalBinaryWrite(message: UploadClickConversionsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.UploadClickConversionsResponse
 */
export declare const UploadClickConversionsResponse: UploadClickConversionsResponse$Type;
declare class UploadCallConversionsRequest$Type extends MessageType<UploadCallConversionsRequest> {
    constructor();
    create(value?: PartialMessage<UploadCallConversionsRequest>): UploadCallConversionsRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UploadCallConversionsRequest): UploadCallConversionsRequest;
    internalBinaryWrite(message: UploadCallConversionsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.UploadCallConversionsRequest
 */
export declare const UploadCallConversionsRequest: UploadCallConversionsRequest$Type;
declare class UploadCallConversionsResponse$Type extends MessageType<UploadCallConversionsResponse> {
    constructor();
    create(value?: PartialMessage<UploadCallConversionsResponse>): UploadCallConversionsResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UploadCallConversionsResponse): UploadCallConversionsResponse;
    internalBinaryWrite(message: UploadCallConversionsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.UploadCallConversionsResponse
 */
export declare const UploadCallConversionsResponse: UploadCallConversionsResponse$Type;
declare class ClickConversion$Type extends MessageType<ClickConversion> {
    constructor();
    create(value?: PartialMessage<ClickConversion>): ClickConversion;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClickConversion): ClickConversion;
    internalBinaryWrite(message: ClickConversion, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.ClickConversion
 */
export declare const ClickConversion: ClickConversion$Type;
declare class CallConversion$Type extends MessageType<CallConversion> {
    constructor();
    create(value?: PartialMessage<CallConversion>): CallConversion;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CallConversion): CallConversion;
    internalBinaryWrite(message: CallConversion, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CallConversion
 */
export declare const CallConversion: CallConversion$Type;
declare class ExternalAttributionData$Type extends MessageType<ExternalAttributionData> {
    constructor();
    create(value?: PartialMessage<ExternalAttributionData>): ExternalAttributionData;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ExternalAttributionData): ExternalAttributionData;
    internalBinaryWrite(message: ExternalAttributionData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.ExternalAttributionData
 */
export declare const ExternalAttributionData: ExternalAttributionData$Type;
declare class ClickConversionResult$Type extends MessageType<ClickConversionResult> {
    constructor();
    create(value?: PartialMessage<ClickConversionResult>): ClickConversionResult;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClickConversionResult): ClickConversionResult;
    internalBinaryWrite(message: ClickConversionResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.ClickConversionResult
 */
export declare const ClickConversionResult: ClickConversionResult$Type;
declare class CallConversionResult$Type extends MessageType<CallConversionResult> {
    constructor();
    create(value?: PartialMessage<CallConversionResult>): CallConversionResult;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CallConversionResult): CallConversionResult;
    internalBinaryWrite(message: CallConversionResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CallConversionResult
 */
export declare const CallConversionResult: CallConversionResult$Type;
declare class CustomVariable$Type extends MessageType<CustomVariable> {
    constructor();
    create(value?: PartialMessage<CustomVariable>): CustomVariable;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CustomVariable): CustomVariable;
    internalBinaryWrite(message: CustomVariable, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CustomVariable
 */
export declare const CustomVariable: CustomVariable$Type;
declare class CartData$Type extends MessageType<CartData> {
    constructor();
    create(value?: PartialMessage<CartData>): CartData;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CartData): CartData;
    internalBinaryWrite(message: CartData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CartData
 */
export declare const CartData: CartData$Type;
declare class CartData_Item$Type extends MessageType<CartData_Item> {
    constructor();
    create(value?: PartialMessage<CartData_Item>): CartData_Item;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CartData_Item): CartData_Item;
    internalBinaryWrite(message: CartData_Item, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.CartData.Item
 */
export declare const CartData_Item: CartData_Item$Type;
/**
 * @generated ServiceType for protobuf service google.ads.googleads.v11.services.ConversionUploadService
 */
export declare const ConversionUploadService: ServiceType;
export {};
