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 { MobileAppVendorEnum_MobileAppVendor } from "../enums/mobile_app_vendor";
import { LinkedAccountTypeEnum_LinkedAccountType } from "../enums/linked_account_type";
import { AccountLinkStatusEnum_AccountLinkStatus } from "../enums/account_link_status";
/**
 * Represents the data sharing connection between a Google Ads account and
 * another account
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.AccountLink
 */
export interface AccountLink {
    /**
     * Immutable. Resource name of the account link.
     * AccountLink resource names have the form:
     * `customers/{customer_id}/accountLinks/{account_link_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The ID of the link.
     * This field is read only.
     *
     * @generated from protobuf field: optional int64 account_link_id = 8;
     */
    accountLinkId?: bigint;
    /**
     * The status of the link.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.AccountLinkStatusEnum.AccountLinkStatus status = 3;
     */
    status: AccountLinkStatusEnum_AccountLinkStatus;
    /**
     * Output only. The type of the linked account.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.LinkedAccountTypeEnum.LinkedAccountType type = 4;
     */
    type: LinkedAccountTypeEnum_LinkedAccountType;
    /**
     * @generated from protobuf oneof: linked_account
     */
    linkedAccount: {
        oneofKind: "thirdPartyAppAnalytics";
        /**
         * Immutable. A third party app analytics link.
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.ThirdPartyAppAnalyticsLinkIdentifier third_party_app_analytics = 5;
         */
        thirdPartyAppAnalytics: ThirdPartyAppAnalyticsLinkIdentifier;
    } | {
        oneofKind: "dataPartner";
        /**
         * Output only. Data partner link.
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.DataPartnerLinkIdentifier data_partner = 6;
         */
        dataPartner: DataPartnerLinkIdentifier;
    } | {
        oneofKind: "googleAds";
        /**
         * Output only. Google Ads link.
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.GoogleAdsLinkIdentifier google_ads = 7;
         */
        googleAds: GoogleAdsLinkIdentifier;
    } | {
        oneofKind: "hotelCenter";
        /**
         * Output only. Hotel link
         *
         * @generated from protobuf field: google.ads.googleads.v11.resources.HotelCenterLinkIdentifier hotel_center = 9;
         */
        hotelCenter: HotelCenterLinkIdentifier;
    } | {
        oneofKind: undefined;
    };
}
/**
 * The identifiers of a Third Party App Analytics Link.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.ThirdPartyAppAnalyticsLinkIdentifier
 */
export interface ThirdPartyAppAnalyticsLinkIdentifier {
    /**
     * Immutable. The ID of the app analytics provider.
     * This field should not be empty when creating a new third
     * party app analytics link. It is unable to be modified after the creation of
     * the link.
     *
     * @generated from protobuf field: optional int64 app_analytics_provider_id = 4;
     */
    appAnalyticsProviderId?: bigint;
    /**
     * Immutable. A string that uniquely identifies a mobile application from which the data
     * was collected to the Google Ads API. For iOS, the ID string is the 9 digit
     * string that appears at the end of an App Store URL (for example,
     * "422689480" for "Gmail" whose App Store link is
     * https://apps.apple.com/us/app/gmail-email-by-google/id422689480). For
     * Android, the ID string is the application's package name (for example,
     * "com.google.android.gm" for "Gmail" given Google Play link
     * https://play.google.com/store/apps/details?id=com.google.android.gm)
     * This field should not be empty when creating a new third
     * party app analytics link. It is unable to be modified after the creation of
     * the link.
     *
     * @generated from protobuf field: optional string app_id = 5;
     */
    appId?: string;
    /**
     * Immutable. The vendor of the app.
     * This field should not be empty when creating a new third
     * party app analytics link. It is unable to be modified after the creation of
     * the link.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.MobileAppVendorEnum.MobileAppVendor app_vendor = 3;
     */
    appVendor: MobileAppVendorEnum_MobileAppVendor;
}
/**
 * The identifier for Data Partner account.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.DataPartnerLinkIdentifier
 */
export interface DataPartnerLinkIdentifier {
    /**
     * Immutable. The customer ID of the Data partner account.
     * This field is required and should not be empty when creating a new
     * data partner link. It is unable to be modified after the creation of
     * the link.
     *
     * @generated from protobuf field: optional int64 data_partner_id = 1;
     */
    dataPartnerId?: bigint;
}
/**
 * The identifier for Hotel account.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.HotelCenterLinkIdentifier
 */
export interface HotelCenterLinkIdentifier {
    /**
     * Output only. The hotel center id of the hotel account.
     *
     * @generated from protobuf field: int64 hotel_center_id = 1;
     */
    hotelCenterId: bigint;
}
/**
 * The identifier for Google Ads account.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.GoogleAdsLinkIdentifier
 */
export interface GoogleAdsLinkIdentifier {
    /**
     * Immutable. The resource name of the Google Ads account.
     * This field is required and should not be empty when creating a new
     * Google Ads link. It is unable to be modified after the creation of
     * the link.
     *
     * @generated from protobuf field: optional string customer = 3;
     */
    customer?: string;
}
declare class AccountLink$Type extends MessageType<AccountLink> {
    constructor();
    create(value?: PartialMessage<AccountLink>): AccountLink;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AccountLink): AccountLink;
    internalBinaryWrite(message: AccountLink, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.AccountLink
 */
export declare const AccountLink: AccountLink$Type;
declare class ThirdPartyAppAnalyticsLinkIdentifier$Type extends MessageType<ThirdPartyAppAnalyticsLinkIdentifier> {
    constructor();
    create(value?: PartialMessage<ThirdPartyAppAnalyticsLinkIdentifier>): ThirdPartyAppAnalyticsLinkIdentifier;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ThirdPartyAppAnalyticsLinkIdentifier): ThirdPartyAppAnalyticsLinkIdentifier;
    internalBinaryWrite(message: ThirdPartyAppAnalyticsLinkIdentifier, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.ThirdPartyAppAnalyticsLinkIdentifier
 */
export declare const ThirdPartyAppAnalyticsLinkIdentifier: ThirdPartyAppAnalyticsLinkIdentifier$Type;
declare class DataPartnerLinkIdentifier$Type extends MessageType<DataPartnerLinkIdentifier> {
    constructor();
    create(value?: PartialMessage<DataPartnerLinkIdentifier>): DataPartnerLinkIdentifier;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DataPartnerLinkIdentifier): DataPartnerLinkIdentifier;
    internalBinaryWrite(message: DataPartnerLinkIdentifier, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.DataPartnerLinkIdentifier
 */
export declare const DataPartnerLinkIdentifier: DataPartnerLinkIdentifier$Type;
declare class HotelCenterLinkIdentifier$Type extends MessageType<HotelCenterLinkIdentifier> {
    constructor();
    create(value?: PartialMessage<HotelCenterLinkIdentifier>): HotelCenterLinkIdentifier;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HotelCenterLinkIdentifier): HotelCenterLinkIdentifier;
    internalBinaryWrite(message: HotelCenterLinkIdentifier, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.HotelCenterLinkIdentifier
 */
export declare const HotelCenterLinkIdentifier: HotelCenterLinkIdentifier$Type;
declare class GoogleAdsLinkIdentifier$Type extends MessageType<GoogleAdsLinkIdentifier> {
    constructor();
    create(value?: PartialMessage<GoogleAdsLinkIdentifier>): GoogleAdsLinkIdentifier;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GoogleAdsLinkIdentifier): GoogleAdsLinkIdentifier;
    internalBinaryWrite(message: GoogleAdsLinkIdentifier, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.GoogleAdsLinkIdentifier
 */
export declare const GoogleAdsLinkIdentifier: GoogleAdsLinkIdentifier$Type;
export {};
