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 { AdStrengthEnum_AdStrength } from "../enums/ad_strength";
import { Ad } from "./ad";
import { AdGroupAdStatusEnum_AdGroupAdStatus } from "../enums/ad_group_ad_status";
/**
 * An ad group ad.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AdGroupAd
 */
export interface AdGroupAd {
    /**
     * Immutable. The resource name of the ad.
     * Ad group ad resource names have the form:
     *
     * `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * The status of the ad.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AdGroupAdStatusEnum.AdGroupAdStatus status = 3;
     */
    status: AdGroupAdStatusEnum_AdGroupAdStatus;
    /**
     * Immutable. The ad group to which the ad belongs.
     *
     * @generated from protobuf field: optional string ad_group = 9;
     */
    adGroup?: string;
    /**
     * Immutable. The ad.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.Ad ad = 5;
     */
    ad?: Ad;
    /**
     * Output only. Policy information for the ad.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.AdGroupAdPolicySummary policy_summary = 6;
     */
    policySummary?: AdGroupAdPolicySummary;
    /**
     * Output only. Overall ad strength for this ad group ad.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AdStrengthEnum.AdStrength ad_strength = 7;
     */
    adStrength: AdStrengthEnum_AdStrength;
    /**
     * Output only. A list of recommendations to improve the ad strength. For example, a
     * recommendation could be "Your headlines are a little too similar.
     * Try adding more distinct headlines.".
     *
     * @generated from protobuf field: repeated string action_items = 13;
     */
    actionItems: string[];
    /**
     * Output only. The resource names of labels attached to this ad group ad.
     *
     * @generated from protobuf field: repeated string labels = 10;
     */
    labels: string[];
}
/**
 * Contains policy information for an ad.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AdGroupAdPolicySummary
 */
export interface AdGroupAdPolicySummary {
    /**
     * Output only. The list of policy findings for this ad.
     *
     * @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 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, 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 AdGroupAd$Type extends MessageType<AdGroupAd> {
    constructor();
    create(value?: PartialMessage<AdGroupAd>): AdGroupAd;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AdGroupAd): AdGroupAd;
    internalBinaryWrite(message: AdGroupAd, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AdGroupAd
 */
export declare const AdGroupAd: AdGroupAd$Type;
declare class AdGroupAdPolicySummary$Type extends MessageType<AdGroupAdPolicySummary> {
    constructor();
    create(value?: PartialMessage<AdGroupAdPolicySummary>): AdGroupAdPolicySummary;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AdGroupAdPolicySummary): AdGroupAdPolicySummary;
    internalBinaryWrite(message: AdGroupAdPolicySummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AdGroupAdPolicySummary
 */
export declare const AdGroupAdPolicySummary: AdGroupAdPolicySummary$Type;
export {};
