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 { ImagePlaceholderFieldEnum_ImagePlaceholderField } from "../enums/image_placeholder_field";
import { JobPlaceholderFieldEnum_JobPlaceholderField } from "../enums/job_placeholder_field";
import { LocalPlaceholderFieldEnum_LocalPlaceholderField } from "../enums/local_placeholder_field";
import { TravelPlaceholderFieldEnum_TravelPlaceholderField } from "../enums/travel_placeholder_field";
import { RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField } from "../enums/real_estate_placeholder_field";
import { HotelPlaceholderFieldEnum_HotelPlaceholderField } from "../enums/hotel_placeholder_field";
import { CustomPlaceholderFieldEnum_CustomPlaceholderField } from "../enums/custom_placeholder_field";
import { FlightPlaceholderFieldEnum_FlightPlaceholderField } from "../enums/flight_placeholder_field";
import { EducationPlaceholderFieldEnum_EducationPlaceholderField } from "../enums/education_placeholder_field";
import { LocationExtensionTargetingCriterionFieldEnum_LocationExtensionTargetingCriterionField } from "../enums/location_extension_targeting_criterion_field";
import { DsaPageFeedCriterionFieldEnum_DsaPageFeedCriterionField } from "../enums/dsa_page_feed_criterion_field";
import { AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField } from "../enums/ad_customizer_placeholder_field";
import { PromotionPlaceholderFieldEnum_PromotionPlaceholderField } from "../enums/promotion_placeholder_field";
import { PricePlaceholderFieldEnum_PricePlaceholderField } from "../enums/price_placeholder_field";
import { MessagePlaceholderFieldEnum_MessagePlaceholderField } from "../enums/message_placeholder_field";
import { StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField } from "../enums/structured_snippet_placeholder_field";
import { CalloutPlaceholderFieldEnum_CalloutPlaceholderField } from "../enums/callout_placeholder_field";
import { AffiliateLocationPlaceholderFieldEnum_AffiliateLocationPlaceholderField } from "../enums/affiliate_location_placeholder_field";
import { LocationPlaceholderFieldEnum_LocationPlaceholderField } from "../enums/location_placeholder_field";
import { AppPlaceholderFieldEnum_AppPlaceholderField } from "../enums/app_placeholder_field";
import { CallPlaceholderFieldEnum_CallPlaceholderField } from "../enums/call_placeholder_field";
import { SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField } from "../enums/sitelink_placeholder_field";
import { FeedMappingCriterionTypeEnum_FeedMappingCriterionType } from "../enums/feed_mapping_criterion_type";
import { PlaceholderTypeEnum_PlaceholderType } from "../enums/placeholder_type";
import { FeedMappingStatusEnum_FeedMappingStatus } from "../enums/feed_mapping_status";
/**
 * A feed mapping.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.FeedMapping
 */
export interface FeedMapping {
    /**
     * Immutable. The resource name of the feed mapping.
     * Feed mapping resource names have the form:
     *
     * `customers/{customer_id}/feedMappings/{feed_id}~{feed_mapping_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Immutable. The feed of this feed mapping.
     *
     * @generated from protobuf field: optional string feed = 7;
     */
    feed?: string;
    /**
     * Immutable. Feed attributes to field mappings. These mappings are a one-to-many
     * relationship meaning that 1 feed attribute can be used to populate
     * multiple placeholder fields, but 1 placeholder field can only draw
     * data from 1 feed attribute. Ad Customizer is an exception, 1 placeholder
     * field can be mapped to multiple feed attributes. Required.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.resources.AttributeFieldMapping attribute_field_mappings = 5;
     */
    attributeFieldMappings: AttributeFieldMapping[];
    /**
     * Output only. Status of the feed mapping.
     * This field is read-only.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.FeedMappingStatusEnum.FeedMappingStatus status = 6;
     */
    status: FeedMappingStatusEnum_FeedMappingStatus;
    /**
     * @generated from protobuf oneof: target
     */
    target: {
        oneofKind: "placeholderType";
        /**
         * Immutable. The placeholder type of this mapping (for example, if the mapping maps
         * feed attributes to placeholder fields).
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.PlaceholderTypeEnum.PlaceholderType placeholder_type = 3;
         */
        placeholderType: PlaceholderTypeEnum_PlaceholderType;
    } | {
        oneofKind: "criterionType";
        /**
         * Immutable. The criterion type of this mapping (for example, if the mapping maps feed
         * attributes to criterion fields).
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.FeedMappingCriterionTypeEnum.FeedMappingCriterionType criterion_type = 4;
         */
        criterionType: FeedMappingCriterionTypeEnum_FeedMappingCriterionType;
    } | {
        oneofKind: undefined;
    };
}
/**
 * Maps from feed attribute id to a placeholder or criterion field id.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AttributeFieldMapping
 */
export interface AttributeFieldMapping {
    /**
     * Immutable. Feed attribute from which to map.
     *
     * @generated from protobuf field: optional int64 feed_attribute_id = 24;
     */
    feedAttributeId?: bigint;
    /**
     * Output only. The placeholder field ID. If a placeholder field enum is not published in
     * the current API version, then this field will be populated and the field
     * oneof will be empty.
     * This field is read-only.
     *
     * @generated from protobuf field: optional int64 field_id = 25;
     */
    fieldId?: bigint;
    /**
     * @generated from protobuf oneof: field
     */
    field: {
        oneofKind: "sitelinkField";
        /**
         * Immutable. Sitelink Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.SitelinkPlaceholderFieldEnum.SitelinkPlaceholderField sitelink_field = 3;
         */
        sitelinkField: SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField;
    } | {
        oneofKind: "callField";
        /**
         * Immutable. Call Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.CallPlaceholderFieldEnum.CallPlaceholderField call_field = 4;
         */
        callField: CallPlaceholderFieldEnum_CallPlaceholderField;
    } | {
        oneofKind: "appField";
        /**
         * Immutable. App Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.AppPlaceholderFieldEnum.AppPlaceholderField app_field = 5;
         */
        appField: AppPlaceholderFieldEnum_AppPlaceholderField;
    } | {
        oneofKind: "locationField";
        /**
         * Output only. Location Placeholder Fields. This field is read-only.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.LocationPlaceholderFieldEnum.LocationPlaceholderField location_field = 6;
         */
        locationField: LocationPlaceholderFieldEnum_LocationPlaceholderField;
    } | {
        oneofKind: "affiliateLocationField";
        /**
         * Output only. Affiliate Location Placeholder Fields. This field is read-only.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.AffiliateLocationPlaceholderFieldEnum.AffiliateLocationPlaceholderField affiliate_location_field = 7;
         */
        affiliateLocationField: AffiliateLocationPlaceholderFieldEnum_AffiliateLocationPlaceholderField;
    } | {
        oneofKind: "calloutField";
        /**
         * Immutable. Callout Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.CalloutPlaceholderFieldEnum.CalloutPlaceholderField callout_field = 8;
         */
        calloutField: CalloutPlaceholderFieldEnum_CalloutPlaceholderField;
    } | {
        oneofKind: "structuredSnippetField";
        /**
         * Immutable. Structured Snippet Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.StructuredSnippetPlaceholderFieldEnum.StructuredSnippetPlaceholderField structured_snippet_field = 9;
         */
        structuredSnippetField: StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField;
    } | {
        oneofKind: "messageField";
        /**
         * Immutable. Message Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.MessagePlaceholderFieldEnum.MessagePlaceholderField message_field = 10;
         */
        messageField: MessagePlaceholderFieldEnum_MessagePlaceholderField;
    } | {
        oneofKind: "priceField";
        /**
         * Immutable. Price Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.PricePlaceholderFieldEnum.PricePlaceholderField price_field = 11;
         */
        priceField: PricePlaceholderFieldEnum_PricePlaceholderField;
    } | {
        oneofKind: "promotionField";
        /**
         * Immutable. Promotion Placeholder Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.PromotionPlaceholderFieldEnum.PromotionPlaceholderField promotion_field = 12;
         */
        promotionField: PromotionPlaceholderFieldEnum_PromotionPlaceholderField;
    } | {
        oneofKind: "adCustomizerField";
        /**
         * Immutable. Ad Customizer Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.AdCustomizerPlaceholderFieldEnum.AdCustomizerPlaceholderField ad_customizer_field = 13;
         */
        adCustomizerField: AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField;
    } | {
        oneofKind: "dsaPageFeedField";
        /**
         * Immutable. Dynamic Search Ad Page Feed Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.DsaPageFeedCriterionFieldEnum.DsaPageFeedCriterionField dsa_page_feed_field = 14;
         */
        dsaPageFeedField: DsaPageFeedCriterionFieldEnum_DsaPageFeedCriterionField;
    } | {
        oneofKind: "locationExtensionTargetingField";
        /**
         * Immutable. Location Target Fields.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.LocationExtensionTargetingCriterionFieldEnum.LocationExtensionTargetingCriterionField location_extension_targeting_field = 15;
         */
        locationExtensionTargetingField: LocationExtensionTargetingCriterionFieldEnum_LocationExtensionTargetingCriterionField;
    } | {
        oneofKind: "educationField";
        /**
         * Immutable. Education Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.EducationPlaceholderFieldEnum.EducationPlaceholderField education_field = 16;
         */
        educationField: EducationPlaceholderFieldEnum_EducationPlaceholderField;
    } | {
        oneofKind: "flightField";
        /**
         * Immutable. Flight Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.FlightPlaceholderFieldEnum.FlightPlaceholderField flight_field = 17;
         */
        flightField: FlightPlaceholderFieldEnum_FlightPlaceholderField;
    } | {
        oneofKind: "customField";
        /**
         * Immutable. Custom Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.CustomPlaceholderFieldEnum.CustomPlaceholderField custom_field = 18;
         */
        customField: CustomPlaceholderFieldEnum_CustomPlaceholderField;
    } | {
        oneofKind: "hotelField";
        /**
         * Immutable. Hotel Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.HotelPlaceholderFieldEnum.HotelPlaceholderField hotel_field = 19;
         */
        hotelField: HotelPlaceholderFieldEnum_HotelPlaceholderField;
    } | {
        oneofKind: "realEstateField";
        /**
         * Immutable. Real Estate Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.RealEstatePlaceholderFieldEnum.RealEstatePlaceholderField real_estate_field = 20;
         */
        realEstateField: RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField;
    } | {
        oneofKind: "travelField";
        /**
         * Immutable. Travel Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.TravelPlaceholderFieldEnum.TravelPlaceholderField travel_field = 21;
         */
        travelField: TravelPlaceholderFieldEnum_TravelPlaceholderField;
    } | {
        oneofKind: "localField";
        /**
         * Immutable. Local Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.LocalPlaceholderFieldEnum.LocalPlaceholderField local_field = 22;
         */
        localField: LocalPlaceholderFieldEnum_LocalPlaceholderField;
    } | {
        oneofKind: "jobField";
        /**
         * Immutable. Job Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.JobPlaceholderFieldEnum.JobPlaceholderField job_field = 23;
         */
        jobField: JobPlaceholderFieldEnum_JobPlaceholderField;
    } | {
        oneofKind: "imageField";
        /**
         * Immutable. Image Placeholder Fields
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.ImagePlaceholderFieldEnum.ImagePlaceholderField image_field = 26;
         */
        imageField: ImagePlaceholderFieldEnum_ImagePlaceholderField;
    } | {
        oneofKind: undefined;
    };
}
declare class FeedMapping$Type extends MessageType<FeedMapping> {
    constructor();
    create(value?: PartialMessage<FeedMapping>): FeedMapping;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FeedMapping): FeedMapping;
    internalBinaryWrite(message: FeedMapping, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.FeedMapping
 */
export declare const FeedMapping: FeedMapping$Type;
declare class AttributeFieldMapping$Type extends MessageType<AttributeFieldMapping> {
    constructor();
    create(value?: PartialMessage<AttributeFieldMapping>): AttributeFieldMapping;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AttributeFieldMapping): AttributeFieldMapping;
    internalBinaryWrite(message: AttributeFieldMapping, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AttributeFieldMapping
 */
export declare const AttributeFieldMapping: AttributeFieldMapping$Type;
export {};
