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 { DataDrivenModelStatusEnum_DataDrivenModelStatus } from "../enums/data_driven_model_status";
import { AttributionModelEnum_AttributionModel } from "../enums/attribution_model";
import { MobileAppVendorEnum_MobileAppVendor } from "../enums/mobile_app_vendor";
import { TagSnippet } from "../common/tag_snippet";
import { ConversionActionCountingTypeEnum_ConversionActionCountingType } from "../enums/conversion_action_counting_type";
import { ConversionActionCategoryEnum_ConversionActionCategory } from "../enums/conversion_action_category";
import { ConversionOriginEnum_ConversionOrigin } from "../enums/conversion_origin";
import { ConversionActionTypeEnum_ConversionActionType } from "../enums/conversion_action_type";
import { ConversionActionStatusEnum_ConversionActionStatus } from "../enums/conversion_action_status";
/**
 * A conversion action.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.ConversionAction
 */
export interface ConversionAction {
    /**
     * Immutable. The resource name of the conversion action.
     * Conversion action resource names have the form:
     *
     * `customers/{customer_id}/conversionActions/{conversion_action_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The ID of the conversion action.
     *
     * @generated from protobuf field: optional int64 id = 21;
     */
    id?: bigint;
    /**
     * The name of the conversion action.
     *
     * This field is required and should not be empty when creating new
     * conversion actions.
     *
     * @generated from protobuf field: optional string name = 22;
     */
    name?: string;
    /**
     * The status of this conversion action for conversion event accrual.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.ConversionActionStatusEnum.ConversionActionStatus status = 4;
     */
    status: ConversionActionStatusEnum_ConversionActionStatus;
    /**
     * Immutable. The type of this conversion action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.ConversionActionTypeEnum.ConversionActionType type = 5;
     */
    type: ConversionActionTypeEnum_ConversionActionType;
    /**
     * Output only. The conversion origin of this conversion action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.ConversionOriginEnum.ConversionOrigin origin = 30;
     */
    origin: ConversionOriginEnum_ConversionOrigin;
    /**
     * If a conversion action's primary_for_goal bit is false, the conversion
     * action is non-biddable for all campaigns regardless of their customer
     * conversion goal or campaign conversion goal.
     * However, custom conversion goals do not respect primary_for_goal, so if
     * a campaign has a custom conversion goal configured with a
     * primary_for_goal = false conversion action, that conversion action is
     * still biddable.
     * By default, primary_for_goal will be true if not set. In V9,
     * primary_for_goal can only be set to false after creation through an
     * 'update' operation because it's not declared as optional.
     *
     * @generated from protobuf field: optional bool primary_for_goal = 31;
     */
    primaryForGoal?: boolean;
    /**
     * The category of conversions reported for this conversion action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.ConversionActionCategoryEnum.ConversionActionCategory category = 6;
     */
    category: ConversionActionCategoryEnum_ConversionActionCategory;
    /**
     * Output only. The resource name of the conversion action owner customer, or null if this
     * is a system-defined conversion action.
     *
     * @generated from protobuf field: optional string owner_customer = 23;
     */
    ownerCustomer?: string;
    /**
     * Whether this conversion action should be included in the "conversions"
     * metric.
     *
     * @generated from protobuf field: optional bool include_in_conversions_metric = 24;
     */
    includeInConversionsMetric?: boolean;
    /**
     * The maximum number of days that may elapse between an interaction
     * (for example, a click) and a conversion event.
     *
     * @generated from protobuf field: optional int64 click_through_lookback_window_days = 25;
     */
    clickThroughLookbackWindowDays?: bigint;
    /**
     * The maximum number of days which may elapse between an impression and a
     * conversion without an interaction.
     *
     * @generated from protobuf field: optional int64 view_through_lookback_window_days = 26;
     */
    viewThroughLookbackWindowDays?: bigint;
    /**
     * Settings related to the value for conversion events associated with this
     * conversion action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.ConversionAction.ValueSettings value_settings = 11;
     */
    valueSettings?: ConversionAction_ValueSettings;
    /**
     * How to count conversion events for the conversion action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.ConversionActionCountingTypeEnum.ConversionActionCountingType counting_type = 12;
     */
    countingType: ConversionActionCountingTypeEnum_ConversionActionCountingType;
    /**
     * Settings related to this conversion action's attribution model.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.ConversionAction.AttributionModelSettings attribution_model_settings = 13;
     */
    attributionModelSettings?: ConversionAction_AttributionModelSettings;
    /**
     * Output only. The snippets used for tracking conversions.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.TagSnippet tag_snippets = 14;
     */
    tagSnippets: TagSnippet[];
    /**
     * The phone call duration in seconds after which a conversion should be
     * reported for this conversion action.
     *
     * The value must be between 0 and 10000, inclusive.
     *
     * @generated from protobuf field: optional int64 phone_call_duration_seconds = 27;
     */
    phoneCallDurationSeconds?: bigint;
    /**
     * App ID for an app conversion action.
     *
     * @generated from protobuf field: optional string app_id = 28;
     */
    appId?: string;
    /**
     * Output only. Mobile app vendor for an app conversion action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.MobileAppVendorEnum.MobileAppVendor mobile_app_vendor = 17;
     */
    mobileAppVendor: MobileAppVendorEnum_MobileAppVendor;
    /**
     * Output only. Firebase settings for Firebase conversion types.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.ConversionAction.FirebaseSettings firebase_settings = 18;
     */
    firebaseSettings?: ConversionAction_FirebaseSettings;
    /**
     * Output only. Third Party App Analytics settings for third party conversion types.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.ConversionAction.ThirdPartyAppAnalyticsSettings third_party_app_analytics_settings = 19;
     */
    thirdPartyAppAnalyticsSettings?: ConversionAction_ThirdPartyAppAnalyticsSettings;
}
/**
 * Settings related to this conversion action's attribution model.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.ConversionAction.AttributionModelSettings
 */
export interface ConversionAction_AttributionModelSettings {
    /**
     * The attribution model type of this conversion action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AttributionModelEnum.AttributionModel attribution_model = 1;
     */
    attributionModel: AttributionModelEnum_AttributionModel;
    /**
     * Output only. The status of the data-driven attribution model for the conversion
     * action.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.DataDrivenModelStatusEnum.DataDrivenModelStatus data_driven_model_status = 2;
     */
    dataDrivenModelStatus: DataDrivenModelStatusEnum_DataDrivenModelStatus;
}
/**
 * Settings related to the value for conversion events associated with this
 * conversion action.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.ConversionAction.ValueSettings
 */
export interface ConversionAction_ValueSettings {
    /**
     * The value to use when conversion events for this conversion action are
     * sent with an invalid, disallowed or missing value, or when
     * this conversion action is configured to always use the default value.
     *
     * @generated from protobuf field: optional double default_value = 4;
     */
    defaultValue?: number;
    /**
     * The currency code to use when conversion events for this conversion
     * action are sent with an invalid or missing currency code, or when this
     * conversion action is configured to always use the default value.
     *
     * @generated from protobuf field: optional string default_currency_code = 5;
     */
    defaultCurrencyCode?: string;
    /**
     * Controls whether the default value and default currency code are used in
     * place of the value and currency code specified in conversion events for
     * this conversion action.
     *
     * @generated from protobuf field: optional bool always_use_default_value = 6;
     */
    alwaysUseDefaultValue?: boolean;
}
/**
 * Settings related to a third party app analytics conversion action.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.ConversionAction.ThirdPartyAppAnalyticsSettings
 */
export interface ConversionAction_ThirdPartyAppAnalyticsSettings {
    /**
     * Output only. The event name of a third-party app analytics conversion.
     *
     * @generated from protobuf field: optional string event_name = 2;
     */
    eventName?: string;
    /**
     * Output only. Name of the third-party app analytics provider.
     *
     * @generated from protobuf field: string provider_name = 3;
     */
    providerName: string;
}
/**
 * Settings related to a Firebase conversion action.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.ConversionAction.FirebaseSettings
 */
export interface ConversionAction_FirebaseSettings {
    /**
     * Output only. The event name of a Firebase conversion.
     *
     * @generated from protobuf field: optional string event_name = 3;
     */
    eventName?: string;
    /**
     * Output only. The Firebase project ID of the conversion.
     *
     * @generated from protobuf field: optional string project_id = 4;
     */
    projectId?: string;
    /**
     * Output only. The GA property ID of the conversion.
     *
     * @generated from protobuf field: int64 property_id = 5;
     */
    propertyId: bigint;
    /**
     * Output only. The GA property name of the conversion.
     *
     * @generated from protobuf field: string property_name = 6;
     */
    propertyName: string;
}
declare class ConversionAction$Type extends MessageType<ConversionAction> {
    constructor();
    create(value?: PartialMessage<ConversionAction>): ConversionAction;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConversionAction): ConversionAction;
    internalBinaryWrite(message: ConversionAction, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.ConversionAction
 */
export declare const ConversionAction: ConversionAction$Type;
declare class ConversionAction_AttributionModelSettings$Type extends MessageType<ConversionAction_AttributionModelSettings> {
    constructor();
    create(value?: PartialMessage<ConversionAction_AttributionModelSettings>): ConversionAction_AttributionModelSettings;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConversionAction_AttributionModelSettings): ConversionAction_AttributionModelSettings;
    internalBinaryWrite(message: ConversionAction_AttributionModelSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.ConversionAction.AttributionModelSettings
 */
export declare const ConversionAction_AttributionModelSettings: ConversionAction_AttributionModelSettings$Type;
declare class ConversionAction_ValueSettings$Type extends MessageType<ConversionAction_ValueSettings> {
    constructor();
    create(value?: PartialMessage<ConversionAction_ValueSettings>): ConversionAction_ValueSettings;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConversionAction_ValueSettings): ConversionAction_ValueSettings;
    internalBinaryWrite(message: ConversionAction_ValueSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.ConversionAction.ValueSettings
 */
export declare const ConversionAction_ValueSettings: ConversionAction_ValueSettings$Type;
declare class ConversionAction_ThirdPartyAppAnalyticsSettings$Type extends MessageType<ConversionAction_ThirdPartyAppAnalyticsSettings> {
    constructor();
    create(value?: PartialMessage<ConversionAction_ThirdPartyAppAnalyticsSettings>): ConversionAction_ThirdPartyAppAnalyticsSettings;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConversionAction_ThirdPartyAppAnalyticsSettings): ConversionAction_ThirdPartyAppAnalyticsSettings;
    internalBinaryWrite(message: ConversionAction_ThirdPartyAppAnalyticsSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.ConversionAction.ThirdPartyAppAnalyticsSettings
 */
export declare const ConversionAction_ThirdPartyAppAnalyticsSettings: ConversionAction_ThirdPartyAppAnalyticsSettings$Type;
declare class ConversionAction_FirebaseSettings$Type extends MessageType<ConversionAction_FirebaseSettings> {
    constructor();
    create(value?: PartialMessage<ConversionAction_FirebaseSettings>): ConversionAction_FirebaseSettings;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ConversionAction_FirebaseSettings): ConversionAction_FirebaseSettings;
    internalBinaryWrite(message: ConversionAction_FirebaseSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.ConversionAction.FirebaseSettings
 */
export declare const ConversionAction_FirebaseSettings: ConversionAction_FirebaseSettings$Type;
export {};
