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 { PolicyApprovalStatusEnum_PolicyApprovalStatus } from "../enums/policy_approval_status";
import { PolicyReviewStatusEnum_PolicyReviewStatus } from "../enums/policy_review_status";
import { PolicyTopicEntry } from "../common/policy";
import { AssetPerformanceLabelEnum_AssetPerformanceLabel } from "../enums/asset_performance_label";
import { AssetFieldTypeEnum_AssetFieldType } from "../enums/asset_field_type";
/**
 * A link between an AdGroupAd and an Asset.
 * Currently we only support AdGroupAdAssetView for AppAds.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AdGroupAdAssetView
 */
export interface AdGroupAdAssetView {
    /**
     * Output only. The resource name of the ad group ad asset view.
     * Ad group ad asset view resource names have the form (Before V4):
     *
     * `customers/{customer_id}/adGroupAdAssets/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}`
     *
     * Ad group ad asset view resource names have the form (Beginning from V4):
     *
     * `customers/{customer_id}/adGroupAdAssetViews/{AdGroupAdAsset.ad_group_id}~{AdGroupAdAsset.ad_id}~{AdGroupAdAsset.asset_id}~{AdGroupAdAsset.field_type}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The ad group ad to which the asset is linked.
     *
     * @generated from protobuf field: optional string ad_group_ad = 9;
     */
    adGroupAd?: string;
    /**
     * Output only. The asset which is linked to the ad group ad.
     *
     * @generated from protobuf field: optional string asset = 10;
     */
    asset?: string;
    /**
     * Output only. Role that the asset takes in the ad.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AssetFieldTypeEnum.AssetFieldType field_type = 2;
     */
    fieldType: AssetFieldTypeEnum_AssetFieldType;
    /**
     * Output only. The status between the asset and the latest version of the ad. If true, the
     * asset is linked to the latest version of the ad. If false, it means the
     * link once existed but has been removed and is no longer present in the
     * latest version of the ad.
     *
     * @generated from protobuf field: optional bool enabled = 8;
     */
    enabled?: boolean;
    /**
     * Output only. Policy information for the ad group ad asset.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.AdGroupAdAssetPolicySummary policy_summary = 3;
     */
    policySummary?: AdGroupAdAssetPolicySummary;
    /**
     * Output only. Performance of an asset linkage.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AssetPerformanceLabelEnum.AssetPerformanceLabel performance_label = 4;
     */
    performanceLabel: AssetPerformanceLabelEnum_AssetPerformanceLabel;
}
/**
 * Contains policy information for an ad group ad asset.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AdGroupAdAssetPolicySummary
 */
export interface AdGroupAdAssetPolicySummary {
    /**
     * Output only. The list of policy findings for the ad group ad asset.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.PolicyTopicEntry policy_topic_entries = 1;
     */
    policyTopicEntries: PolicyTopicEntry[];
    /**
     * Output only. Where in the review process this ad group ad asset is.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.PolicyReviewStatusEnum.PolicyReviewStatus review_status = 2;
     */
    reviewStatus: PolicyReviewStatusEnum_PolicyReviewStatus;
    /**
     * Output only. The overall approval status of this ad group ad asset, calculated based on
     * the status of its individual policy topic entries.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.PolicyApprovalStatusEnum.PolicyApprovalStatus approval_status = 3;
     */
    approvalStatus: PolicyApprovalStatusEnum_PolicyApprovalStatus;
}
declare class AdGroupAdAssetView$Type extends MessageType<AdGroupAdAssetView> {
    constructor();
    create(value?: PartialMessage<AdGroupAdAssetView>): AdGroupAdAssetView;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AdGroupAdAssetView): AdGroupAdAssetView;
    internalBinaryWrite(message: AdGroupAdAssetView, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AdGroupAdAssetView
 */
export declare const AdGroupAdAssetView: AdGroupAdAssetView$Type;
declare class AdGroupAdAssetPolicySummary$Type extends MessageType<AdGroupAdAssetPolicySummary> {
    constructor();
    create(value?: PartialMessage<AdGroupAdAssetPolicySummary>): AdGroupAdAssetPolicySummary;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AdGroupAdAssetPolicySummary): AdGroupAdAssetPolicySummary;
    internalBinaryWrite(message: AdGroupAdAssetPolicySummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AdGroupAdAssetPolicySummary
 */
export declare const AdGroupAdAssetPolicySummary: AdGroupAdAssetPolicySummary$Type;
export {};
