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 { AssetLinkStatusEnum_AssetLinkStatus } from "../enums/asset_link_status";
import { AssetSourceEnum_AssetSource } from "../enums/asset_source";
import { AssetFieldTypeEnum_AssetFieldType } from "../enums/asset_field_type";
/**
 * A link between a Campaign and an Asset.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.CampaignAsset
 */
export interface CampaignAsset {
    /**
     * Immutable. The resource name of the campaign asset.
     * CampaignAsset resource names have the form:
     *
     * `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Immutable. The campaign to which the asset is linked.
     *
     * @generated from protobuf field: optional string campaign = 6;
     */
    campaign?: string;
    /**
     * Immutable. The asset which is linked to the campaign.
     *
     * @generated from protobuf field: optional string asset = 7;
     */
    asset?: string;
    /**
     * Immutable. Role that the asset takes under the linked campaign.
     * Required.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AssetFieldTypeEnum.AssetFieldType field_type = 4;
     */
    fieldType: AssetFieldTypeEnum_AssetFieldType;
    /**
     * Output only. Source of the campaign asset link.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AssetSourceEnum.AssetSource source = 8;
     */
    source: AssetSourceEnum_AssetSource;
    /**
     * Status of the campaign asset.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AssetLinkStatusEnum.AssetLinkStatus status = 5;
     */
    status: AssetLinkStatusEnum_AssetLinkStatus;
}
declare class CampaignAsset$Type extends MessageType<CampaignAsset> {
    constructor();
    create(value?: PartialMessage<CampaignAsset>): CampaignAsset;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CampaignAsset): CampaignAsset;
    internalBinaryWrite(message: CampaignAsset, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.CampaignAsset
 */
export declare const CampaignAsset: CampaignAsset$Type;
export {};
