// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import type {protobuf as $protobuf} from "google-gax";
import Long = require("long");
/** Namespace google. */
export namespace google {

    /** Namespace ads. */
    namespace ads {

        /** Namespace admanager. */
        namespace admanager {

            /** Namespace v1. */
            namespace v1 {

                /** Properties of an AdUnitStatusEnum. */
                interface IAdUnitStatusEnum {
                }

                /** Represents an AdUnitStatusEnum. */
                class AdUnitStatusEnum implements IAdUnitStatusEnum {

                    /**
                     * Constructs a new AdUnitStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IAdUnitStatusEnum);

                    /**
                     * Creates a new AdUnitStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AdUnitStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IAdUnitStatusEnum): google.ads.admanager.v1.AdUnitStatusEnum;

                    /**
                     * Encodes the specified AdUnitStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.AdUnitStatusEnum.verify|verify} messages.
                     * @param message AdUnitStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IAdUnitStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdUnitStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.AdUnitStatusEnum.verify|verify} messages.
                     * @param message AdUnitStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IAdUnitStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AdUnitStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdUnitStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.AdUnitStatusEnum;

                    /**
                     * Decodes an AdUnitStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdUnitStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.AdUnitStatusEnum;

                    /**
                     * Verifies an AdUnitStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AdUnitStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdUnitStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.AdUnitStatusEnum;

                    /**
                     * Creates a plain object from an AdUnitStatusEnum message. Also converts values to other types if specified.
                     * @param message AdUnitStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.AdUnitStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AdUnitStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AdUnitStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AdUnitStatusEnum {

                    /** AdUnitStatus enum. */
                    enum AdUnitStatus {
                        AD_UNIT_STATUS_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        INACTIVE = 2,
                        ARCHIVED = 3
                    }
                }

                /** Properties of a SmartSizeModeEnum. */
                interface ISmartSizeModeEnum {
                }

                /** Represents a SmartSizeModeEnum. */
                class SmartSizeModeEnum implements ISmartSizeModeEnum {

                    /**
                     * Constructs a new SmartSizeModeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ISmartSizeModeEnum);

                    /**
                     * Creates a new SmartSizeModeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SmartSizeModeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ISmartSizeModeEnum): google.ads.admanager.v1.SmartSizeModeEnum;

                    /**
                     * Encodes the specified SmartSizeModeEnum message. Does not implicitly {@link google.ads.admanager.v1.SmartSizeModeEnum.verify|verify} messages.
                     * @param message SmartSizeModeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ISmartSizeModeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SmartSizeModeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.SmartSizeModeEnum.verify|verify} messages.
                     * @param message SmartSizeModeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ISmartSizeModeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SmartSizeModeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SmartSizeModeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.SmartSizeModeEnum;

                    /**
                     * Decodes a SmartSizeModeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SmartSizeModeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.SmartSizeModeEnum;

                    /**
                     * Verifies a SmartSizeModeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SmartSizeModeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SmartSizeModeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.SmartSizeModeEnum;

                    /**
                     * Creates a plain object from a SmartSizeModeEnum message. Also converts values to other types if specified.
                     * @param message SmartSizeModeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.SmartSizeModeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SmartSizeModeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SmartSizeModeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SmartSizeModeEnum {

                    /** SmartSizeMode enum. */
                    enum SmartSizeMode {
                        SMART_SIZE_MODE_UNSPECIFIED = 0,
                        NONE = 1,
                        SMART_BANNER = 2,
                        DYNAMIC_SIZE = 3
                    }
                }

                /** Properties of a TargetWindowEnum. */
                interface ITargetWindowEnum {
                }

                /** Represents a TargetWindowEnum. */
                class TargetWindowEnum implements ITargetWindowEnum {

                    /**
                     * Constructs a new TargetWindowEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ITargetWindowEnum);

                    /**
                     * Creates a new TargetWindowEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TargetWindowEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ITargetWindowEnum): google.ads.admanager.v1.TargetWindowEnum;

                    /**
                     * Encodes the specified TargetWindowEnum message. Does not implicitly {@link google.ads.admanager.v1.TargetWindowEnum.verify|verify} messages.
                     * @param message TargetWindowEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ITargetWindowEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TargetWindowEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.TargetWindowEnum.verify|verify} messages.
                     * @param message TargetWindowEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ITargetWindowEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TargetWindowEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TargetWindowEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.TargetWindowEnum;

                    /**
                     * Decodes a TargetWindowEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TargetWindowEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.TargetWindowEnum;

                    /**
                     * Verifies a TargetWindowEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TargetWindowEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TargetWindowEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.TargetWindowEnum;

                    /**
                     * Creates a plain object from a TargetWindowEnum message. Also converts values to other types if specified.
                     * @param message TargetWindowEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.TargetWindowEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TargetWindowEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TargetWindowEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TargetWindowEnum {

                    /** TargetWindow enum. */
                    enum TargetWindow {
                        TARGET_WINDOW_UNSPECIFIED = 0,
                        TOP = 1,
                        BLANK = 2
                    }
                }

                /** Properties of an AdUnit. */
                interface IAdUnit {

                    /** AdUnit name */
                    name?: (string|null);

                    /** AdUnit adUnitId */
                    adUnitId?: (number|Long|string|null);

                    /** AdUnit parentAdUnit */
                    parentAdUnit?: (string|null);

                    /** AdUnit parentPath */
                    parentPath?: (google.ads.admanager.v1.IAdUnitParent[]|null);

                    /** AdUnit displayName */
                    displayName?: (string|null);

                    /** AdUnit adUnitCode */
                    adUnitCode?: (string|null);

                    /** AdUnit status */
                    status?: (google.ads.admanager.v1.AdUnitStatusEnum.AdUnitStatus|keyof typeof google.ads.admanager.v1.AdUnitStatusEnum.AdUnitStatus|null);

                    /** AdUnit appliedTargetWindow */
                    appliedTargetWindow?: (google.ads.admanager.v1.TargetWindowEnum.TargetWindow|keyof typeof google.ads.admanager.v1.TargetWindowEnum.TargetWindow|null);

                    /** AdUnit effectiveTargetWindow */
                    effectiveTargetWindow?: (google.ads.admanager.v1.TargetWindowEnum.TargetWindow|keyof typeof google.ads.admanager.v1.TargetWindowEnum.TargetWindow|null);

                    /** AdUnit appliedTeams */
                    appliedTeams?: (string[]|null);

                    /** AdUnit teams */
                    teams?: (string[]|null);

                    /** AdUnit description */
                    description?: (string|null);

                    /** AdUnit explicitlyTargeted */
                    explicitlyTargeted?: (boolean|null);

                    /** AdUnit hasChildren */
                    hasChildren?: (boolean|null);

                    /** AdUnit updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** AdUnit adUnitSizes */
                    adUnitSizes?: (google.ads.admanager.v1.IAdUnitSize[]|null);

                    /** AdUnit externalSetTopBoxChannelId */
                    externalSetTopBoxChannelId?: (string|null);

                    /** AdUnit refreshDelay */
                    refreshDelay?: (google.protobuf.IDuration|null);

                    /** AdUnit appliedLabels */
                    appliedLabels?: (google.ads.admanager.v1.IAppliedLabel[]|null);

                    /** AdUnit effectiveAppliedLabels */
                    effectiveAppliedLabels?: (google.ads.admanager.v1.IAppliedLabel[]|null);

                    /** AdUnit appliedLabelFrequencyCaps */
                    appliedLabelFrequencyCaps?: (google.ads.admanager.v1.ILabelFrequencyCap[]|null);

                    /** AdUnit effectiveLabelFrequencyCaps */
                    effectiveLabelFrequencyCaps?: (google.ads.admanager.v1.ILabelFrequencyCap[]|null);

                    /** AdUnit smartSizeMode */
                    smartSizeMode?: (google.ads.admanager.v1.SmartSizeModeEnum.SmartSizeMode|keyof typeof google.ads.admanager.v1.SmartSizeModeEnum.SmartSizeMode|null);

                    /** AdUnit appliedAdsenseEnabled */
                    appliedAdsenseEnabled?: (boolean|null);

                    /** AdUnit effectiveAdsenseEnabled */
                    effectiveAdsenseEnabled?: (boolean|null);
                }

                /** Represents an AdUnit. */
                class AdUnit implements IAdUnit {

                    /**
                     * Constructs a new AdUnit.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IAdUnit);

                    /** AdUnit name. */
                    public name: string;

                    /** AdUnit adUnitId. */
                    public adUnitId: (number|Long|string);

                    /** AdUnit parentAdUnit. */
                    public parentAdUnit: string;

                    /** AdUnit parentPath. */
                    public parentPath: google.ads.admanager.v1.IAdUnitParent[];

                    /** AdUnit displayName. */
                    public displayName: string;

                    /** AdUnit adUnitCode. */
                    public adUnitCode: string;

                    /** AdUnit status. */
                    public status: (google.ads.admanager.v1.AdUnitStatusEnum.AdUnitStatus|keyof typeof google.ads.admanager.v1.AdUnitStatusEnum.AdUnitStatus);

                    /** AdUnit appliedTargetWindow. */
                    public appliedTargetWindow: (google.ads.admanager.v1.TargetWindowEnum.TargetWindow|keyof typeof google.ads.admanager.v1.TargetWindowEnum.TargetWindow);

                    /** AdUnit effectiveTargetWindow. */
                    public effectiveTargetWindow: (google.ads.admanager.v1.TargetWindowEnum.TargetWindow|keyof typeof google.ads.admanager.v1.TargetWindowEnum.TargetWindow);

                    /** AdUnit appliedTeams. */
                    public appliedTeams: string[];

                    /** AdUnit teams. */
                    public teams: string[];

                    /** AdUnit description. */
                    public description: string;

                    /** AdUnit explicitlyTargeted. */
                    public explicitlyTargeted: boolean;

                    /** AdUnit hasChildren. */
                    public hasChildren: boolean;

                    /** AdUnit updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** AdUnit adUnitSizes. */
                    public adUnitSizes: google.ads.admanager.v1.IAdUnitSize[];

                    /** AdUnit externalSetTopBoxChannelId. */
                    public externalSetTopBoxChannelId: string;

                    /** AdUnit refreshDelay. */
                    public refreshDelay?: (google.protobuf.IDuration|null);

                    /** AdUnit appliedLabels. */
                    public appliedLabels: google.ads.admanager.v1.IAppliedLabel[];

                    /** AdUnit effectiveAppliedLabels. */
                    public effectiveAppliedLabels: google.ads.admanager.v1.IAppliedLabel[];

                    /** AdUnit appliedLabelFrequencyCaps. */
                    public appliedLabelFrequencyCaps: google.ads.admanager.v1.ILabelFrequencyCap[];

                    /** AdUnit effectiveLabelFrequencyCaps. */
                    public effectiveLabelFrequencyCaps: google.ads.admanager.v1.ILabelFrequencyCap[];

                    /** AdUnit smartSizeMode. */
                    public smartSizeMode: (google.ads.admanager.v1.SmartSizeModeEnum.SmartSizeMode|keyof typeof google.ads.admanager.v1.SmartSizeModeEnum.SmartSizeMode);

                    /** AdUnit appliedAdsenseEnabled. */
                    public appliedAdsenseEnabled?: (boolean|null);

                    /** AdUnit effectiveAdsenseEnabled. */
                    public effectiveAdsenseEnabled: boolean;

                    /** AdUnit _appliedAdsenseEnabled. */
                    public _appliedAdsenseEnabled?: "appliedAdsenseEnabled";

                    /**
                     * Creates a new AdUnit instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AdUnit instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IAdUnit): google.ads.admanager.v1.AdUnit;

                    /**
                     * Encodes the specified AdUnit message. Does not implicitly {@link google.ads.admanager.v1.AdUnit.verify|verify} messages.
                     * @param message AdUnit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IAdUnit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdUnit message, length delimited. Does not implicitly {@link google.ads.admanager.v1.AdUnit.verify|verify} messages.
                     * @param message AdUnit message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IAdUnit, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AdUnit message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdUnit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.AdUnit;

                    /**
                     * Decodes an AdUnit message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdUnit
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.AdUnit;

                    /**
                     * Verifies an AdUnit message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AdUnit message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdUnit
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.AdUnit;

                    /**
                     * Creates a plain object from an AdUnit message. Also converts values to other types if specified.
                     * @param message AdUnit
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.AdUnit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AdUnit to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AdUnit
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AdUnitSize. */
                interface IAdUnitSize {

                    /** AdUnitSize size */
                    size?: (google.ads.admanager.v1.ISize|null);

                    /** AdUnitSize environmentType */
                    environmentType?: (google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType|keyof typeof google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType|null);

                    /** AdUnitSize companions */
                    companions?: (google.ads.admanager.v1.ISize[]|null);
                }

                /** Represents an AdUnitSize. */
                class AdUnitSize implements IAdUnitSize {

                    /**
                     * Constructs a new AdUnitSize.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IAdUnitSize);

                    /** AdUnitSize size. */
                    public size?: (google.ads.admanager.v1.ISize|null);

                    /** AdUnitSize environmentType. */
                    public environmentType: (google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType|keyof typeof google.ads.admanager.v1.EnvironmentTypeEnum.EnvironmentType);

                    /** AdUnitSize companions. */
                    public companions: google.ads.admanager.v1.ISize[];

                    /**
                     * Creates a new AdUnitSize instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AdUnitSize instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IAdUnitSize): google.ads.admanager.v1.AdUnitSize;

                    /**
                     * Encodes the specified AdUnitSize message. Does not implicitly {@link google.ads.admanager.v1.AdUnitSize.verify|verify} messages.
                     * @param message AdUnitSize message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IAdUnitSize, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdUnitSize message, length delimited. Does not implicitly {@link google.ads.admanager.v1.AdUnitSize.verify|verify} messages.
                     * @param message AdUnitSize message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IAdUnitSize, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AdUnitSize message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdUnitSize
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.AdUnitSize;

                    /**
                     * Decodes an AdUnitSize message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdUnitSize
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.AdUnitSize;

                    /**
                     * Verifies an AdUnitSize message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AdUnitSize message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdUnitSize
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.AdUnitSize;

                    /**
                     * Creates a plain object from an AdUnitSize message. Also converts values to other types if specified.
                     * @param message AdUnitSize
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.AdUnitSize, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AdUnitSize to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AdUnitSize
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AdUnitParent. */
                interface IAdUnitParent {

                    /** AdUnitParent parentAdUnit */
                    parentAdUnit?: (string|null);

                    /** AdUnitParent displayName */
                    displayName?: (string|null);

                    /** AdUnitParent adUnitCode */
                    adUnitCode?: (string|null);
                }

                /** Represents an AdUnitParent. */
                class AdUnitParent implements IAdUnitParent {

                    /**
                     * Constructs a new AdUnitParent.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IAdUnitParent);

                    /** AdUnitParent parentAdUnit. */
                    public parentAdUnit: string;

                    /** AdUnitParent displayName. */
                    public displayName: string;

                    /** AdUnitParent adUnitCode. */
                    public adUnitCode: string;

                    /**
                     * Creates a new AdUnitParent instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AdUnitParent instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IAdUnitParent): google.ads.admanager.v1.AdUnitParent;

                    /**
                     * Encodes the specified AdUnitParent message. Does not implicitly {@link google.ads.admanager.v1.AdUnitParent.verify|verify} messages.
                     * @param message AdUnitParent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IAdUnitParent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdUnitParent message, length delimited. Does not implicitly {@link google.ads.admanager.v1.AdUnitParent.verify|verify} messages.
                     * @param message AdUnitParent message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IAdUnitParent, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AdUnitParent message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdUnitParent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.AdUnitParent;

                    /**
                     * Decodes an AdUnitParent message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdUnitParent
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.AdUnitParent;

                    /**
                     * Verifies an AdUnitParent message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AdUnitParent message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdUnitParent
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.AdUnitParent;

                    /**
                     * Creates a plain object from an AdUnitParent message. Also converts values to other types if specified.
                     * @param message AdUnitParent
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.AdUnitParent, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AdUnitParent to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AdUnitParent
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LabelFrequencyCap. */
                interface ILabelFrequencyCap {

                    /** LabelFrequencyCap label */
                    label?: (string|null);

                    /** LabelFrequencyCap frequencyCap */
                    frequencyCap?: (google.ads.admanager.v1.IFrequencyCap|null);
                }

                /** Represents a LabelFrequencyCap. */
                class LabelFrequencyCap implements ILabelFrequencyCap {

                    /**
                     * Constructs a new LabelFrequencyCap.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ILabelFrequencyCap);

                    /** LabelFrequencyCap label. */
                    public label: string;

                    /** LabelFrequencyCap frequencyCap. */
                    public frequencyCap?: (google.ads.admanager.v1.IFrequencyCap|null);

                    /**
                     * Creates a new LabelFrequencyCap instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LabelFrequencyCap instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ILabelFrequencyCap): google.ads.admanager.v1.LabelFrequencyCap;

                    /**
                     * Encodes the specified LabelFrequencyCap message. Does not implicitly {@link google.ads.admanager.v1.LabelFrequencyCap.verify|verify} messages.
                     * @param message LabelFrequencyCap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ILabelFrequencyCap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LabelFrequencyCap message, length delimited. Does not implicitly {@link google.ads.admanager.v1.LabelFrequencyCap.verify|verify} messages.
                     * @param message LabelFrequencyCap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ILabelFrequencyCap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LabelFrequencyCap message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LabelFrequencyCap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.LabelFrequencyCap;

                    /**
                     * Decodes a LabelFrequencyCap message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LabelFrequencyCap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.LabelFrequencyCap;

                    /**
                     * Verifies a LabelFrequencyCap message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LabelFrequencyCap message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LabelFrequencyCap
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.LabelFrequencyCap;

                    /**
                     * Creates a plain object from a LabelFrequencyCap message. Also converts values to other types if specified.
                     * @param message LabelFrequencyCap
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.LabelFrequencyCap, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LabelFrequencyCap to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LabelFrequencyCap
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AppliedLabel. */
                interface IAppliedLabel {

                    /** AppliedLabel label */
                    label?: (string|null);

                    /** AppliedLabel negated */
                    negated?: (boolean|null);
                }

                /** Represents an AppliedLabel. */
                class AppliedLabel implements IAppliedLabel {

                    /**
                     * Constructs a new AppliedLabel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IAppliedLabel);

                    /** AppliedLabel label. */
                    public label: string;

                    /** AppliedLabel negated. */
                    public negated: boolean;

                    /**
                     * Creates a new AppliedLabel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AppliedLabel instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IAppliedLabel): google.ads.admanager.v1.AppliedLabel;

                    /**
                     * Encodes the specified AppliedLabel message. Does not implicitly {@link google.ads.admanager.v1.AppliedLabel.verify|verify} messages.
                     * @param message AppliedLabel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IAppliedLabel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AppliedLabel message, length delimited. Does not implicitly {@link google.ads.admanager.v1.AppliedLabel.verify|verify} messages.
                     * @param message AppliedLabel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IAppliedLabel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AppliedLabel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AppliedLabel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.AppliedLabel;

                    /**
                     * Decodes an AppliedLabel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AppliedLabel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.AppliedLabel;

                    /**
                     * Verifies an AppliedLabel message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AppliedLabel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AppliedLabel
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.AppliedLabel;

                    /**
                     * Creates a plain object from an AppliedLabel message. Also converts values to other types if specified.
                     * @param message AppliedLabel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.AppliedLabel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AppliedLabel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AppliedLabel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EnvironmentTypeEnum. */
                interface IEnvironmentTypeEnum {
                }

                /** Represents an EnvironmentTypeEnum. */
                class EnvironmentTypeEnum implements IEnvironmentTypeEnum {

                    /**
                     * Constructs a new EnvironmentTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IEnvironmentTypeEnum);

                    /**
                     * Creates a new EnvironmentTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EnvironmentTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IEnvironmentTypeEnum): google.ads.admanager.v1.EnvironmentTypeEnum;

                    /**
                     * Encodes the specified EnvironmentTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.EnvironmentTypeEnum.verify|verify} messages.
                     * @param message EnvironmentTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IEnvironmentTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EnvironmentTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.EnvironmentTypeEnum.verify|verify} messages.
                     * @param message EnvironmentTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IEnvironmentTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EnvironmentTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EnvironmentTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.EnvironmentTypeEnum;

                    /**
                     * Decodes an EnvironmentTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EnvironmentTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.EnvironmentTypeEnum;

                    /**
                     * Verifies an EnvironmentTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an EnvironmentTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EnvironmentTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.EnvironmentTypeEnum;

                    /**
                     * Creates a plain object from an EnvironmentTypeEnum message. Also converts values to other types if specified.
                     * @param message EnvironmentTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.EnvironmentTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EnvironmentTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EnvironmentTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace EnvironmentTypeEnum {

                    /** EnvironmentType enum. */
                    enum EnvironmentType {
                        ENVIRONMENT_TYPE_UNSPECIFIED = 0,
                        BROWSER = 1,
                        VIDEO_PLAYER = 2
                    }
                }

                /** Properties of a FrequencyCap. */
                interface IFrequencyCap {

                    /** FrequencyCap maxImpressions */
                    maxImpressions?: (number|Long|string|null);

                    /** FrequencyCap timeAmount */
                    timeAmount?: (number|Long|string|null);

                    /** FrequencyCap timeUnit */
                    timeUnit?: (google.ads.admanager.v1.TimeUnitEnum.TimeUnit|keyof typeof google.ads.admanager.v1.TimeUnitEnum.TimeUnit|null);
                }

                /** Represents a FrequencyCap. */
                class FrequencyCap implements IFrequencyCap {

                    /**
                     * Constructs a new FrequencyCap.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IFrequencyCap);

                    /** FrequencyCap maxImpressions. */
                    public maxImpressions?: (number|Long|string|null);

                    /** FrequencyCap timeAmount. */
                    public timeAmount?: (number|Long|string|null);

                    /** FrequencyCap timeUnit. */
                    public timeUnit?: (google.ads.admanager.v1.TimeUnitEnum.TimeUnit|keyof typeof google.ads.admanager.v1.TimeUnitEnum.TimeUnit|null);

                    /** FrequencyCap _maxImpressions. */
                    public _maxImpressions?: "maxImpressions";

                    /** FrequencyCap _timeAmount. */
                    public _timeAmount?: "timeAmount";

                    /** FrequencyCap _timeUnit. */
                    public _timeUnit?: "timeUnit";

                    /**
                     * Creates a new FrequencyCap instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FrequencyCap instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IFrequencyCap): google.ads.admanager.v1.FrequencyCap;

                    /**
                     * Encodes the specified FrequencyCap message. Does not implicitly {@link google.ads.admanager.v1.FrequencyCap.verify|verify} messages.
                     * @param message FrequencyCap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IFrequencyCap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FrequencyCap message, length delimited. Does not implicitly {@link google.ads.admanager.v1.FrequencyCap.verify|verify} messages.
                     * @param message FrequencyCap message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IFrequencyCap, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FrequencyCap message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FrequencyCap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.FrequencyCap;

                    /**
                     * Decodes a FrequencyCap message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FrequencyCap
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.FrequencyCap;

                    /**
                     * Verifies a FrequencyCap message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FrequencyCap message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FrequencyCap
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.FrequencyCap;

                    /**
                     * Creates a plain object from a FrequencyCap message. Also converts values to other types if specified.
                     * @param message FrequencyCap
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.FrequencyCap, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FrequencyCap to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FrequencyCap
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TimeUnitEnum. */
                interface ITimeUnitEnum {
                }

                /** Represents a TimeUnitEnum. */
                class TimeUnitEnum implements ITimeUnitEnum {

                    /**
                     * Constructs a new TimeUnitEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ITimeUnitEnum);

                    /**
                     * Creates a new TimeUnitEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TimeUnitEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ITimeUnitEnum): google.ads.admanager.v1.TimeUnitEnum;

                    /**
                     * Encodes the specified TimeUnitEnum message. Does not implicitly {@link google.ads.admanager.v1.TimeUnitEnum.verify|verify} messages.
                     * @param message TimeUnitEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ITimeUnitEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TimeUnitEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.TimeUnitEnum.verify|verify} messages.
                     * @param message TimeUnitEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ITimeUnitEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TimeUnitEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TimeUnitEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.TimeUnitEnum;

                    /**
                     * Decodes a TimeUnitEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TimeUnitEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.TimeUnitEnum;

                    /**
                     * Verifies a TimeUnitEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TimeUnitEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TimeUnitEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.TimeUnitEnum;

                    /**
                     * Creates a plain object from a TimeUnitEnum message. Also converts values to other types if specified.
                     * @param message TimeUnitEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.TimeUnitEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TimeUnitEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TimeUnitEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TimeUnitEnum {

                    /** TimeUnit enum. */
                    enum TimeUnit {
                        TIME_UNIT_UNSPECIFIED = 0,
                        MINUTE = 1,
                        HOUR = 2,
                        DAY = 3,
                        WEEK = 4,
                        MONTH = 5,
                        LIFETIME = 6,
                        POD = 7,
                        STREAM = 8
                    }
                }

                /** Properties of a Size. */
                interface ISize {

                    /** Size width */
                    width?: (number|null);

                    /** Size height */
                    height?: (number|null);

                    /** Size sizeType */
                    sizeType?: (google.ads.admanager.v1.SizeTypeEnum.SizeType|keyof typeof google.ads.admanager.v1.SizeTypeEnum.SizeType|null);
                }

                /** Represents a Size. */
                class Size implements ISize {

                    /**
                     * Constructs a new Size.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ISize);

                    /** Size width. */
                    public width: number;

                    /** Size height. */
                    public height: number;

                    /** Size sizeType. */
                    public sizeType: (google.ads.admanager.v1.SizeTypeEnum.SizeType|keyof typeof google.ads.admanager.v1.SizeTypeEnum.SizeType);

                    /**
                     * Creates a new Size instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Size instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ISize): google.ads.admanager.v1.Size;

                    /**
                     * Encodes the specified Size message. Does not implicitly {@link google.ads.admanager.v1.Size.verify|verify} messages.
                     * @param message Size message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ISize, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Size message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Size.verify|verify} messages.
                     * @param message Size message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ISize, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Size message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Size
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Size;

                    /**
                     * Decodes a Size message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Size
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Size;

                    /**
                     * Verifies a Size message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Size message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Size
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Size;

                    /**
                     * Creates a plain object from a Size message. Also converts values to other types if specified.
                     * @param message Size
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Size, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Size to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Size
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SizeTypeEnum. */
                interface ISizeTypeEnum {
                }

                /** Represents a SizeTypeEnum. */
                class SizeTypeEnum implements ISizeTypeEnum {

                    /**
                     * Constructs a new SizeTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ISizeTypeEnum);

                    /**
                     * Creates a new SizeTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SizeTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ISizeTypeEnum): google.ads.admanager.v1.SizeTypeEnum;

                    /**
                     * Encodes the specified SizeTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.SizeTypeEnum.verify|verify} messages.
                     * @param message SizeTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ISizeTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SizeTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.SizeTypeEnum.verify|verify} messages.
                     * @param message SizeTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ISizeTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SizeTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SizeTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.SizeTypeEnum;

                    /**
                     * Decodes a SizeTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SizeTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.SizeTypeEnum;

                    /**
                     * Verifies a SizeTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SizeTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SizeTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.SizeTypeEnum;

                    /**
                     * Creates a plain object from a SizeTypeEnum message. Also converts values to other types if specified.
                     * @param message SizeTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.SizeTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SizeTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SizeTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SizeTypeEnum {

                    /** SizeType enum. */
                    enum SizeType {
                        SIZE_TYPE_UNSPECIFIED = 0,
                        PIXEL = 1,
                        ASPECT_RATIO = 2,
                        INTERSTITIAL = 3,
                        IGNORED = 4,
                        NATIVE = 5,
                        FLUID = 6,
                        AUDIO = 7
                    }
                }

                /** Represents an AdUnitService */
                class AdUnitService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new AdUnitService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new AdUnitService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): AdUnitService;

                    /**
                     * Calls GetAdUnit.
                     * @param request GetAdUnitRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and AdUnit
                     */
                    public getAdUnit(request: google.ads.admanager.v1.IGetAdUnitRequest, callback: google.ads.admanager.v1.AdUnitService.GetAdUnitCallback): void;

                    /**
                     * Calls GetAdUnit.
                     * @param request GetAdUnitRequest message or plain object
                     * @returns Promise
                     */
                    public getAdUnit(request: google.ads.admanager.v1.IGetAdUnitRequest): Promise<google.ads.admanager.v1.AdUnit>;

                    /**
                     * Calls ListAdUnits.
                     * @param request ListAdUnitsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListAdUnitsResponse
                     */
                    public listAdUnits(request: google.ads.admanager.v1.IListAdUnitsRequest, callback: google.ads.admanager.v1.AdUnitService.ListAdUnitsCallback): void;

                    /**
                     * Calls ListAdUnits.
                     * @param request ListAdUnitsRequest message or plain object
                     * @returns Promise
                     */
                    public listAdUnits(request: google.ads.admanager.v1.IListAdUnitsRequest): Promise<google.ads.admanager.v1.ListAdUnitsResponse>;

                    /**
                     * Calls ListAdUnitSizes.
                     * @param request ListAdUnitSizesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListAdUnitSizesResponse
                     */
                    public listAdUnitSizes(request: google.ads.admanager.v1.IListAdUnitSizesRequest, callback: google.ads.admanager.v1.AdUnitService.ListAdUnitSizesCallback): void;

                    /**
                     * Calls ListAdUnitSizes.
                     * @param request ListAdUnitSizesRequest message or plain object
                     * @returns Promise
                     */
                    public listAdUnitSizes(request: google.ads.admanager.v1.IListAdUnitSizesRequest): Promise<google.ads.admanager.v1.ListAdUnitSizesResponse>;
                }

                namespace AdUnitService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.AdUnitService|getAdUnit}.
                     * @param error Error, if any
                     * @param [response] AdUnit
                     */
                    type GetAdUnitCallback = (error: (Error|null), response?: google.ads.admanager.v1.AdUnit) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.AdUnitService|listAdUnits}.
                     * @param error Error, if any
                     * @param [response] ListAdUnitsResponse
                     */
                    type ListAdUnitsCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListAdUnitsResponse) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.AdUnitService|listAdUnitSizes}.
                     * @param error Error, if any
                     * @param [response] ListAdUnitSizesResponse
                     */
                    type ListAdUnitSizesCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListAdUnitSizesResponse) => void;
                }

                /** Properties of a GetAdUnitRequest. */
                interface IGetAdUnitRequest {

                    /** GetAdUnitRequest name */
                    name?: (string|null);
                }

                /** Represents a GetAdUnitRequest. */
                class GetAdUnitRequest implements IGetAdUnitRequest {

                    /**
                     * Constructs a new GetAdUnitRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetAdUnitRequest);

                    /** GetAdUnitRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetAdUnitRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetAdUnitRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetAdUnitRequest): google.ads.admanager.v1.GetAdUnitRequest;

                    /**
                     * Encodes the specified GetAdUnitRequest message. Does not implicitly {@link google.ads.admanager.v1.GetAdUnitRequest.verify|verify} messages.
                     * @param message GetAdUnitRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetAdUnitRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetAdUnitRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetAdUnitRequest.verify|verify} messages.
                     * @param message GetAdUnitRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetAdUnitRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetAdUnitRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetAdUnitRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetAdUnitRequest;

                    /**
                     * Decodes a GetAdUnitRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetAdUnitRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetAdUnitRequest;

                    /**
                     * Verifies a GetAdUnitRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetAdUnitRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetAdUnitRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetAdUnitRequest;

                    /**
                     * Creates a plain object from a GetAdUnitRequest message. Also converts values to other types if specified.
                     * @param message GetAdUnitRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetAdUnitRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetAdUnitRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetAdUnitRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAdUnitsRequest. */
                interface IListAdUnitsRequest {

                    /** ListAdUnitsRequest parent */
                    parent?: (string|null);

                    /** ListAdUnitsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListAdUnitsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAdUnitsRequest filter */
                    filter?: (string|null);

                    /** ListAdUnitsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAdUnitsRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListAdUnitsRequest. */
                class ListAdUnitsRequest implements IListAdUnitsRequest {

                    /**
                     * Constructs a new ListAdUnitsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListAdUnitsRequest);

                    /** ListAdUnitsRequest parent. */
                    public parent: string;

                    /** ListAdUnitsRequest pageSize. */
                    public pageSize: number;

                    /** ListAdUnitsRequest pageToken. */
                    public pageToken: string;

                    /** ListAdUnitsRequest filter. */
                    public filter: string;

                    /** ListAdUnitsRequest orderBy. */
                    public orderBy: string;

                    /** ListAdUnitsRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListAdUnitsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAdUnitsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListAdUnitsRequest): google.ads.admanager.v1.ListAdUnitsRequest;

                    /**
                     * Encodes the specified ListAdUnitsRequest message. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitsRequest.verify|verify} messages.
                     * @param message ListAdUnitsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListAdUnitsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAdUnitsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitsRequest.verify|verify} messages.
                     * @param message ListAdUnitsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListAdUnitsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAdUnitsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAdUnitsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListAdUnitsRequest;

                    /**
                     * Decodes a ListAdUnitsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAdUnitsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListAdUnitsRequest;

                    /**
                     * Verifies a ListAdUnitsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAdUnitsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAdUnitsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListAdUnitsRequest;

                    /**
                     * Creates a plain object from a ListAdUnitsRequest message. Also converts values to other types if specified.
                     * @param message ListAdUnitsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListAdUnitsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAdUnitsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAdUnitsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAdUnitsResponse. */
                interface IListAdUnitsResponse {

                    /** ListAdUnitsResponse adUnits */
                    adUnits?: (google.ads.admanager.v1.IAdUnit[]|null);

                    /** ListAdUnitsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListAdUnitsResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListAdUnitsResponse. */
                class ListAdUnitsResponse implements IListAdUnitsResponse {

                    /**
                     * Constructs a new ListAdUnitsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListAdUnitsResponse);

                    /** ListAdUnitsResponse adUnits. */
                    public adUnits: google.ads.admanager.v1.IAdUnit[];

                    /** ListAdUnitsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListAdUnitsResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListAdUnitsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAdUnitsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListAdUnitsResponse): google.ads.admanager.v1.ListAdUnitsResponse;

                    /**
                     * Encodes the specified ListAdUnitsResponse message. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitsResponse.verify|verify} messages.
                     * @param message ListAdUnitsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListAdUnitsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAdUnitsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitsResponse.verify|verify} messages.
                     * @param message ListAdUnitsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListAdUnitsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAdUnitsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAdUnitsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListAdUnitsResponse;

                    /**
                     * Decodes a ListAdUnitsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAdUnitsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListAdUnitsResponse;

                    /**
                     * Verifies a ListAdUnitsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAdUnitsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAdUnitsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListAdUnitsResponse;

                    /**
                     * Creates a plain object from a ListAdUnitsResponse message. Also converts values to other types if specified.
                     * @param message ListAdUnitsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListAdUnitsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAdUnitsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAdUnitsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAdUnitSizesRequest. */
                interface IListAdUnitSizesRequest {

                    /** ListAdUnitSizesRequest parent */
                    parent?: (string|null);

                    /** ListAdUnitSizesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListAdUnitSizesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListAdUnitSizesRequest filter */
                    filter?: (string|null);

                    /** ListAdUnitSizesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListAdUnitSizesRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListAdUnitSizesRequest. */
                class ListAdUnitSizesRequest implements IListAdUnitSizesRequest {

                    /**
                     * Constructs a new ListAdUnitSizesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListAdUnitSizesRequest);

                    /** ListAdUnitSizesRequest parent. */
                    public parent: string;

                    /** ListAdUnitSizesRequest pageSize. */
                    public pageSize: number;

                    /** ListAdUnitSizesRequest pageToken. */
                    public pageToken: string;

                    /** ListAdUnitSizesRequest filter. */
                    public filter: string;

                    /** ListAdUnitSizesRequest orderBy. */
                    public orderBy: string;

                    /** ListAdUnitSizesRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListAdUnitSizesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAdUnitSizesRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListAdUnitSizesRequest): google.ads.admanager.v1.ListAdUnitSizesRequest;

                    /**
                     * Encodes the specified ListAdUnitSizesRequest message. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitSizesRequest.verify|verify} messages.
                     * @param message ListAdUnitSizesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListAdUnitSizesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAdUnitSizesRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitSizesRequest.verify|verify} messages.
                     * @param message ListAdUnitSizesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListAdUnitSizesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAdUnitSizesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAdUnitSizesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListAdUnitSizesRequest;

                    /**
                     * Decodes a ListAdUnitSizesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAdUnitSizesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListAdUnitSizesRequest;

                    /**
                     * Verifies a ListAdUnitSizesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAdUnitSizesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAdUnitSizesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListAdUnitSizesRequest;

                    /**
                     * Creates a plain object from a ListAdUnitSizesRequest message. Also converts values to other types if specified.
                     * @param message ListAdUnitSizesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListAdUnitSizesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAdUnitSizesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAdUnitSizesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListAdUnitSizesResponse. */
                interface IListAdUnitSizesResponse {

                    /** ListAdUnitSizesResponse adUnitSizes */
                    adUnitSizes?: (google.ads.admanager.v1.IAdUnitSize[]|null);

                    /** ListAdUnitSizesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListAdUnitSizesResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListAdUnitSizesResponse. */
                class ListAdUnitSizesResponse implements IListAdUnitSizesResponse {

                    /**
                     * Constructs a new ListAdUnitSizesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListAdUnitSizesResponse);

                    /** ListAdUnitSizesResponse adUnitSizes. */
                    public adUnitSizes: google.ads.admanager.v1.IAdUnitSize[];

                    /** ListAdUnitSizesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListAdUnitSizesResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListAdUnitSizesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListAdUnitSizesResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListAdUnitSizesResponse): google.ads.admanager.v1.ListAdUnitSizesResponse;

                    /**
                     * Encodes the specified ListAdUnitSizesResponse message. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitSizesResponse.verify|verify} messages.
                     * @param message ListAdUnitSizesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListAdUnitSizesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListAdUnitSizesResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListAdUnitSizesResponse.verify|verify} messages.
                     * @param message ListAdUnitSizesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListAdUnitSizesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListAdUnitSizesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListAdUnitSizesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListAdUnitSizesResponse;

                    /**
                     * Decodes a ListAdUnitSizesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListAdUnitSizesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListAdUnitSizesResponse;

                    /**
                     * Verifies a ListAdUnitSizesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListAdUnitSizesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListAdUnitSizesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListAdUnitSizesResponse;

                    /**
                     * Creates a plain object from a ListAdUnitSizesResponse message. Also converts values to other types if specified.
                     * @param message ListAdUnitSizesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListAdUnitSizesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListAdUnitSizesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListAdUnitSizesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an AdManagerError. */
                interface IAdManagerError {

                    /** AdManagerError errorCode */
                    errorCode?: (string|null);

                    /** AdManagerError message */
                    message?: (string|null);

                    /** AdManagerError fieldPath */
                    fieldPath?: (string|null);

                    /** AdManagerError trigger */
                    trigger?: (string|null);

                    /** AdManagerError stackTrace */
                    stackTrace?: (string|null);

                    /** AdManagerError details */
                    details?: (google.protobuf.IAny[]|null);
                }

                /** Represents an AdManagerError. */
                class AdManagerError implements IAdManagerError {

                    /**
                     * Constructs a new AdManagerError.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IAdManagerError);

                    /** AdManagerError errorCode. */
                    public errorCode: string;

                    /** AdManagerError message. */
                    public message: string;

                    /** AdManagerError fieldPath. */
                    public fieldPath: string;

                    /** AdManagerError trigger. */
                    public trigger: string;

                    /** AdManagerError stackTrace. */
                    public stackTrace: string;

                    /** AdManagerError details. */
                    public details: google.protobuf.IAny[];

                    /**
                     * Creates a new AdManagerError instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AdManagerError instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IAdManagerError): google.ads.admanager.v1.AdManagerError;

                    /**
                     * Encodes the specified AdManagerError message. Does not implicitly {@link google.ads.admanager.v1.AdManagerError.verify|verify} messages.
                     * @param message AdManagerError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IAdManagerError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AdManagerError message, length delimited. Does not implicitly {@link google.ads.admanager.v1.AdManagerError.verify|verify} messages.
                     * @param message AdManagerError message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IAdManagerError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AdManagerError message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdManagerError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.AdManagerError;

                    /**
                     * Decodes an AdManagerError message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdManagerError
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.AdManagerError;

                    /**
                     * Verifies an AdManagerError message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AdManagerError message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdManagerError
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.AdManagerError;

                    /**
                     * Creates a plain object from an AdManagerError message. Also converts values to other types if specified.
                     * @param message AdManagerError
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.AdManagerError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AdManagerError to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AdManagerError
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompanyCreditStatusEnum. */
                interface ICompanyCreditStatusEnum {
                }

                /** Represents a CompanyCreditStatusEnum. */
                class CompanyCreditStatusEnum implements ICompanyCreditStatusEnum {

                    /**
                     * Constructs a new CompanyCreditStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICompanyCreditStatusEnum);

                    /**
                     * Creates a new CompanyCreditStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompanyCreditStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICompanyCreditStatusEnum): google.ads.admanager.v1.CompanyCreditStatusEnum;

                    /**
                     * Encodes the specified CompanyCreditStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.CompanyCreditStatusEnum.verify|verify} messages.
                     * @param message CompanyCreditStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICompanyCreditStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompanyCreditStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CompanyCreditStatusEnum.verify|verify} messages.
                     * @param message CompanyCreditStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICompanyCreditStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompanyCreditStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompanyCreditStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CompanyCreditStatusEnum;

                    /**
                     * Decodes a CompanyCreditStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompanyCreditStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CompanyCreditStatusEnum;

                    /**
                     * Verifies a CompanyCreditStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompanyCreditStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompanyCreditStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CompanyCreditStatusEnum;

                    /**
                     * Creates a plain object from a CompanyCreditStatusEnum message. Also converts values to other types if specified.
                     * @param message CompanyCreditStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CompanyCreditStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompanyCreditStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompanyCreditStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CompanyCreditStatusEnum {

                    /** CompanyCreditStatus enum. */
                    enum CompanyCreditStatus {
                        COMPANY_CREDIT_STATUS_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        INACTIVE = 2,
                        ON_HOLD = 3,
                        STOP = 4,
                        BLOCKED = 5
                    }
                }

                /** Properties of a Company. */
                interface ICompany {

                    /** Company name */
                    name?: (string|null);

                    /** Company companyId */
                    companyId?: (number|Long|string|null);

                    /** Company displayName */
                    displayName?: (string|null);

                    /** Company type */
                    type?: (google.ads.admanager.v1.CompanyTypeEnum.CompanyType|keyof typeof google.ads.admanager.v1.CompanyTypeEnum.CompanyType|null);

                    /** Company address */
                    address?: (string|null);

                    /** Company email */
                    email?: (string|null);

                    /** Company fax */
                    fax?: (string|null);

                    /** Company phone */
                    phone?: (string|null);

                    /** Company externalId */
                    externalId?: (string|null);

                    /** Company comment */
                    comment?: (string|null);

                    /** Company creditStatus */
                    creditStatus?: (google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus|keyof typeof google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus|null);

                    /** Company appliedLabels */
                    appliedLabels?: (google.ads.admanager.v1.IAppliedLabel[]|null);

                    /** Company primaryContact */
                    primaryContact?: (string|null);

                    /** Company appliedTeams */
                    appliedTeams?: (string[]|null);

                    /** Company updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Company thirdPartyCompanyId */
                    thirdPartyCompanyId?: (number|Long|string|null);
                }

                /** Represents a Company. */
                class Company implements ICompany {

                    /**
                     * Constructs a new Company.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICompany);

                    /** Company name. */
                    public name: string;

                    /** Company companyId. */
                    public companyId: (number|Long|string);

                    /** Company displayName. */
                    public displayName: string;

                    /** Company type. */
                    public type: (google.ads.admanager.v1.CompanyTypeEnum.CompanyType|keyof typeof google.ads.admanager.v1.CompanyTypeEnum.CompanyType);

                    /** Company address. */
                    public address: string;

                    /** Company email. */
                    public email: string;

                    /** Company fax. */
                    public fax: string;

                    /** Company phone. */
                    public phone: string;

                    /** Company externalId. */
                    public externalId: string;

                    /** Company comment. */
                    public comment: string;

                    /** Company creditStatus. */
                    public creditStatus: (google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus|keyof typeof google.ads.admanager.v1.CompanyCreditStatusEnum.CompanyCreditStatus);

                    /** Company appliedLabels. */
                    public appliedLabels: google.ads.admanager.v1.IAppliedLabel[];

                    /** Company primaryContact. */
                    public primaryContact?: (string|null);

                    /** Company appliedTeams. */
                    public appliedTeams: string[];

                    /** Company updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Company thirdPartyCompanyId. */
                    public thirdPartyCompanyId: (number|Long|string);

                    /** Company _primaryContact. */
                    public _primaryContact?: "primaryContact";

                    /**
                     * Creates a new Company instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Company instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICompany): google.ads.admanager.v1.Company;

                    /**
                     * Encodes the specified Company message. Does not implicitly {@link google.ads.admanager.v1.Company.verify|verify} messages.
                     * @param message Company message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICompany, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Company message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Company.verify|verify} messages.
                     * @param message Company message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICompany, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Company message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Company
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Company;

                    /**
                     * Decodes a Company message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Company
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Company;

                    /**
                     * Verifies a Company message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Company message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Company
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Company;

                    /**
                     * Creates a plain object from a Company message. Also converts values to other types if specified.
                     * @param message Company
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Company, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Company to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Company
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CompanyTypeEnum. */
                interface ICompanyTypeEnum {
                }

                /** Represents a CompanyTypeEnum. */
                class CompanyTypeEnum implements ICompanyTypeEnum {

                    /**
                     * Constructs a new CompanyTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICompanyTypeEnum);

                    /**
                     * Creates a new CompanyTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CompanyTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICompanyTypeEnum): google.ads.admanager.v1.CompanyTypeEnum;

                    /**
                     * Encodes the specified CompanyTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.CompanyTypeEnum.verify|verify} messages.
                     * @param message CompanyTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICompanyTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CompanyTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CompanyTypeEnum.verify|verify} messages.
                     * @param message CompanyTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICompanyTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CompanyTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CompanyTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CompanyTypeEnum;

                    /**
                     * Decodes a CompanyTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CompanyTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CompanyTypeEnum;

                    /**
                     * Verifies a CompanyTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CompanyTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CompanyTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CompanyTypeEnum;

                    /**
                     * Creates a plain object from a CompanyTypeEnum message. Also converts values to other types if specified.
                     * @param message CompanyTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CompanyTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CompanyTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CompanyTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CompanyTypeEnum {

                    /** CompanyType enum. */
                    enum CompanyType {
                        COMPANY_TYPE_UNSPECIFIED = 0,
                        ADVERTISER = 1,
                        HOUSE_ADVERTISER = 2,
                        AGENCY = 3,
                        HOUSE_AGENCY = 4,
                        AD_NETWORK = 5
                    }
                }

                /** Represents a CompanyService */
                class CompanyService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new CompanyService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new CompanyService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): CompanyService;

                    /**
                     * Calls GetCompany.
                     * @param request GetCompanyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Company
                     */
                    public getCompany(request: google.ads.admanager.v1.IGetCompanyRequest, callback: google.ads.admanager.v1.CompanyService.GetCompanyCallback): void;

                    /**
                     * Calls GetCompany.
                     * @param request GetCompanyRequest message or plain object
                     * @returns Promise
                     */
                    public getCompany(request: google.ads.admanager.v1.IGetCompanyRequest): Promise<google.ads.admanager.v1.Company>;

                    /**
                     * Calls ListCompanies.
                     * @param request ListCompaniesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListCompaniesResponse
                     */
                    public listCompanies(request: google.ads.admanager.v1.IListCompaniesRequest, callback: google.ads.admanager.v1.CompanyService.ListCompaniesCallback): void;

                    /**
                     * Calls ListCompanies.
                     * @param request ListCompaniesRequest message or plain object
                     * @returns Promise
                     */
                    public listCompanies(request: google.ads.admanager.v1.IListCompaniesRequest): Promise<google.ads.admanager.v1.ListCompaniesResponse>;
                }

                namespace CompanyService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CompanyService|getCompany}.
                     * @param error Error, if any
                     * @param [response] Company
                     */
                    type GetCompanyCallback = (error: (Error|null), response?: google.ads.admanager.v1.Company) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CompanyService|listCompanies}.
                     * @param error Error, if any
                     * @param [response] ListCompaniesResponse
                     */
                    type ListCompaniesCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListCompaniesResponse) => void;
                }

                /** Properties of a GetCompanyRequest. */
                interface IGetCompanyRequest {

                    /** GetCompanyRequest name */
                    name?: (string|null);
                }

                /** Represents a GetCompanyRequest. */
                class GetCompanyRequest implements IGetCompanyRequest {

                    /**
                     * Constructs a new GetCompanyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetCompanyRequest);

                    /** GetCompanyRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetCompanyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetCompanyRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetCompanyRequest): google.ads.admanager.v1.GetCompanyRequest;

                    /**
                     * Encodes the specified GetCompanyRequest message. Does not implicitly {@link google.ads.admanager.v1.GetCompanyRequest.verify|verify} messages.
                     * @param message GetCompanyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetCompanyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetCompanyRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetCompanyRequest.verify|verify} messages.
                     * @param message GetCompanyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetCompanyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetCompanyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetCompanyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetCompanyRequest;

                    /**
                     * Decodes a GetCompanyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetCompanyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetCompanyRequest;

                    /**
                     * Verifies a GetCompanyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetCompanyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetCompanyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetCompanyRequest;

                    /**
                     * Creates a plain object from a GetCompanyRequest message. Also converts values to other types if specified.
                     * @param message GetCompanyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetCompanyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetCompanyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetCompanyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCompaniesRequest. */
                interface IListCompaniesRequest {

                    /** ListCompaniesRequest parent */
                    parent?: (string|null);

                    /** ListCompaniesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListCompaniesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListCompaniesRequest filter */
                    filter?: (string|null);

                    /** ListCompaniesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListCompaniesRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListCompaniesRequest. */
                class ListCompaniesRequest implements IListCompaniesRequest {

                    /**
                     * Constructs a new ListCompaniesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCompaniesRequest);

                    /** ListCompaniesRequest parent. */
                    public parent: string;

                    /** ListCompaniesRequest pageSize. */
                    public pageSize: number;

                    /** ListCompaniesRequest pageToken. */
                    public pageToken: string;

                    /** ListCompaniesRequest filter. */
                    public filter: string;

                    /** ListCompaniesRequest orderBy. */
                    public orderBy: string;

                    /** ListCompaniesRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListCompaniesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCompaniesRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCompaniesRequest): google.ads.admanager.v1.ListCompaniesRequest;

                    /**
                     * Encodes the specified ListCompaniesRequest message. Does not implicitly {@link google.ads.admanager.v1.ListCompaniesRequest.verify|verify} messages.
                     * @param message ListCompaniesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCompaniesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCompaniesRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCompaniesRequest.verify|verify} messages.
                     * @param message ListCompaniesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCompaniesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCompaniesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCompaniesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCompaniesRequest;

                    /**
                     * Decodes a ListCompaniesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCompaniesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCompaniesRequest;

                    /**
                     * Verifies a ListCompaniesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCompaniesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCompaniesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCompaniesRequest;

                    /**
                     * Creates a plain object from a ListCompaniesRequest message. Also converts values to other types if specified.
                     * @param message ListCompaniesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCompaniesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCompaniesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCompaniesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCompaniesResponse. */
                interface IListCompaniesResponse {

                    /** ListCompaniesResponse companies */
                    companies?: (google.ads.admanager.v1.ICompany[]|null);

                    /** ListCompaniesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListCompaniesResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListCompaniesResponse. */
                class ListCompaniesResponse implements IListCompaniesResponse {

                    /**
                     * Constructs a new ListCompaniesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCompaniesResponse);

                    /** ListCompaniesResponse companies. */
                    public companies: google.ads.admanager.v1.ICompany[];

                    /** ListCompaniesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListCompaniesResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListCompaniesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCompaniesResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCompaniesResponse): google.ads.admanager.v1.ListCompaniesResponse;

                    /**
                     * Encodes the specified ListCompaniesResponse message. Does not implicitly {@link google.ads.admanager.v1.ListCompaniesResponse.verify|verify} messages.
                     * @param message ListCompaniesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCompaniesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCompaniesResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCompaniesResponse.verify|verify} messages.
                     * @param message ListCompaniesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCompaniesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCompaniesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCompaniesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCompaniesResponse;

                    /**
                     * Decodes a ListCompaniesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCompaniesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCompaniesResponse;

                    /**
                     * Verifies a ListCompaniesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCompaniesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCompaniesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCompaniesResponse;

                    /**
                     * Creates a plain object from a ListCompaniesResponse message. Also converts values to other types if specified.
                     * @param message ListCompaniesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCompaniesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCompaniesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCompaniesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Contact. */
                interface IContact {

                    /** Contact name */
                    name?: (string|null);

                    /** Contact contactId */
                    contactId?: (number|Long|string|null);
                }

                /** Represents a Contact. */
                class Contact implements IContact {

                    /**
                     * Constructs a new Contact.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IContact);

                    /** Contact name. */
                    public name: string;

                    /** Contact contactId. */
                    public contactId: (number|Long|string);

                    /**
                     * Creates a new Contact instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Contact instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IContact): google.ads.admanager.v1.Contact;

                    /**
                     * Encodes the specified Contact message. Does not implicitly {@link google.ads.admanager.v1.Contact.verify|verify} messages.
                     * @param message Contact message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IContact, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Contact message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Contact.verify|verify} messages.
                     * @param message Contact message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IContact, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Contact message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Contact
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Contact;

                    /**
                     * Decodes a Contact message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Contact
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Contact;

                    /**
                     * Verifies a Contact message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Contact message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Contact
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Contact;

                    /**
                     * Creates a plain object from a Contact message. Also converts values to other types if specified.
                     * @param message Contact
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Contact, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Contact to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Contact
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomFieldDataTypeEnum. */
                interface ICustomFieldDataTypeEnum {
                }

                /** Represents a CustomFieldDataTypeEnum. */
                class CustomFieldDataTypeEnum implements ICustomFieldDataTypeEnum {

                    /**
                     * Constructs a new CustomFieldDataTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomFieldDataTypeEnum);

                    /**
                     * Creates a new CustomFieldDataTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomFieldDataTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomFieldDataTypeEnum): google.ads.admanager.v1.CustomFieldDataTypeEnum;

                    /**
                     * Encodes the specified CustomFieldDataTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomFieldDataTypeEnum.verify|verify} messages.
                     * @param message CustomFieldDataTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomFieldDataTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomFieldDataTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomFieldDataTypeEnum.verify|verify} messages.
                     * @param message CustomFieldDataTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomFieldDataTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomFieldDataTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomFieldDataTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomFieldDataTypeEnum;

                    /**
                     * Decodes a CustomFieldDataTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomFieldDataTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomFieldDataTypeEnum;

                    /**
                     * Verifies a CustomFieldDataTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomFieldDataTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomFieldDataTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomFieldDataTypeEnum;

                    /**
                     * Creates a plain object from a CustomFieldDataTypeEnum message. Also converts values to other types if specified.
                     * @param message CustomFieldDataTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomFieldDataTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomFieldDataTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomFieldDataTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomFieldDataTypeEnum {

                    /** CustomFieldDataType enum. */
                    enum CustomFieldDataType {
                        CUSTOM_FIELD_DATA_TYPE_UNSPECIFIED = 0,
                        STRING = 1,
                        NUMBER = 2,
                        TOGGLE = 3,
                        DROP_DOWN = 4
                    }
                }

                /** Properties of a CustomFieldEntityTypeEnum. */
                interface ICustomFieldEntityTypeEnum {
                }

                /** Represents a CustomFieldEntityTypeEnum. */
                class CustomFieldEntityTypeEnum implements ICustomFieldEntityTypeEnum {

                    /**
                     * Constructs a new CustomFieldEntityTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomFieldEntityTypeEnum);

                    /**
                     * Creates a new CustomFieldEntityTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomFieldEntityTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomFieldEntityTypeEnum): google.ads.admanager.v1.CustomFieldEntityTypeEnum;

                    /**
                     * Encodes the specified CustomFieldEntityTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomFieldEntityTypeEnum.verify|verify} messages.
                     * @param message CustomFieldEntityTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomFieldEntityTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomFieldEntityTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomFieldEntityTypeEnum.verify|verify} messages.
                     * @param message CustomFieldEntityTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomFieldEntityTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomFieldEntityTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomFieldEntityTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomFieldEntityTypeEnum;

                    /**
                     * Decodes a CustomFieldEntityTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomFieldEntityTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomFieldEntityTypeEnum;

                    /**
                     * Verifies a CustomFieldEntityTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomFieldEntityTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomFieldEntityTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomFieldEntityTypeEnum;

                    /**
                     * Creates a plain object from a CustomFieldEntityTypeEnum message. Also converts values to other types if specified.
                     * @param message CustomFieldEntityTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomFieldEntityTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomFieldEntityTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomFieldEntityTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomFieldEntityTypeEnum {

                    /** CustomFieldEntityType enum. */
                    enum CustomFieldEntityType {
                        CUSTOM_FIELD_ENTITY_TYPE_UNSPECIFIED = 0,
                        LINE_ITEM = 1,
                        ORDER = 2,
                        CREATIVE = 3,
                        PROPOSAL = 4,
                        PROPOSAL_LINE_ITEM = 5
                    }
                }

                /** Properties of a CustomFieldStatusEnum. */
                interface ICustomFieldStatusEnum {
                }

                /** Represents a CustomFieldStatusEnum. */
                class CustomFieldStatusEnum implements ICustomFieldStatusEnum {

                    /**
                     * Constructs a new CustomFieldStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomFieldStatusEnum);

                    /**
                     * Creates a new CustomFieldStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomFieldStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomFieldStatusEnum): google.ads.admanager.v1.CustomFieldStatusEnum;

                    /**
                     * Encodes the specified CustomFieldStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomFieldStatusEnum.verify|verify} messages.
                     * @param message CustomFieldStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomFieldStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomFieldStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomFieldStatusEnum.verify|verify} messages.
                     * @param message CustomFieldStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomFieldStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomFieldStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomFieldStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomFieldStatusEnum;

                    /**
                     * Decodes a CustomFieldStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomFieldStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomFieldStatusEnum;

                    /**
                     * Verifies a CustomFieldStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomFieldStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomFieldStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomFieldStatusEnum;

                    /**
                     * Creates a plain object from a CustomFieldStatusEnum message. Also converts values to other types if specified.
                     * @param message CustomFieldStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomFieldStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomFieldStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomFieldStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomFieldStatusEnum {

                    /** CustomFieldStatus enum. */
                    enum CustomFieldStatus {
                        CUSTOM_FIELD_STATUS_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        INACTIVE = 2
                    }
                }

                /** Properties of a CustomFieldVisibilityEnum. */
                interface ICustomFieldVisibilityEnum {
                }

                /** Represents a CustomFieldVisibilityEnum. */
                class CustomFieldVisibilityEnum implements ICustomFieldVisibilityEnum {

                    /**
                     * Constructs a new CustomFieldVisibilityEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomFieldVisibilityEnum);

                    /**
                     * Creates a new CustomFieldVisibilityEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomFieldVisibilityEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomFieldVisibilityEnum): google.ads.admanager.v1.CustomFieldVisibilityEnum;

                    /**
                     * Encodes the specified CustomFieldVisibilityEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomFieldVisibilityEnum.verify|verify} messages.
                     * @param message CustomFieldVisibilityEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomFieldVisibilityEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomFieldVisibilityEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomFieldVisibilityEnum.verify|verify} messages.
                     * @param message CustomFieldVisibilityEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomFieldVisibilityEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomFieldVisibilityEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomFieldVisibilityEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomFieldVisibilityEnum;

                    /**
                     * Decodes a CustomFieldVisibilityEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomFieldVisibilityEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomFieldVisibilityEnum;

                    /**
                     * Verifies a CustomFieldVisibilityEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomFieldVisibilityEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomFieldVisibilityEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomFieldVisibilityEnum;

                    /**
                     * Creates a plain object from a CustomFieldVisibilityEnum message. Also converts values to other types if specified.
                     * @param message CustomFieldVisibilityEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomFieldVisibilityEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomFieldVisibilityEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomFieldVisibilityEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomFieldVisibilityEnum {

                    /** CustomFieldVisibility enum. */
                    enum CustomFieldVisibility {
                        CUSTOM_FIELD_VISIBILITY_UNSPECIFIED = 0,
                        HIDDEN = 1,
                        READ_ONLY = 2,
                        EDITABLE = 3
                    }
                }

                /** Properties of a CustomField. */
                interface ICustomField {

                    /** CustomField name */
                    name?: (string|null);

                    /** CustomField customFieldId */
                    customFieldId?: (number|Long|string|null);

                    /** CustomField displayName */
                    displayName?: (string|null);

                    /** CustomField description */
                    description?: (string|null);

                    /** CustomField status */
                    status?: (google.ads.admanager.v1.CustomFieldStatusEnum.CustomFieldStatus|keyof typeof google.ads.admanager.v1.CustomFieldStatusEnum.CustomFieldStatus|null);

                    /** CustomField entityType */
                    entityType?: (google.ads.admanager.v1.CustomFieldEntityTypeEnum.CustomFieldEntityType|keyof typeof google.ads.admanager.v1.CustomFieldEntityTypeEnum.CustomFieldEntityType|null);

                    /** CustomField dataType */
                    dataType?: (google.ads.admanager.v1.CustomFieldDataTypeEnum.CustomFieldDataType|keyof typeof google.ads.admanager.v1.CustomFieldDataTypeEnum.CustomFieldDataType|null);

                    /** CustomField visibility */
                    visibility?: (google.ads.admanager.v1.CustomFieldVisibilityEnum.CustomFieldVisibility|keyof typeof google.ads.admanager.v1.CustomFieldVisibilityEnum.CustomFieldVisibility|null);

                    /** CustomField options */
                    options?: (google.ads.admanager.v1.ICustomFieldOption[]|null);
                }

                /** Represents a CustomField. */
                class CustomField implements ICustomField {

                    /**
                     * Constructs a new CustomField.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomField);

                    /** CustomField name. */
                    public name: string;

                    /** CustomField customFieldId. */
                    public customFieldId: (number|Long|string);

                    /** CustomField displayName. */
                    public displayName: string;

                    /** CustomField description. */
                    public description: string;

                    /** CustomField status. */
                    public status: (google.ads.admanager.v1.CustomFieldStatusEnum.CustomFieldStatus|keyof typeof google.ads.admanager.v1.CustomFieldStatusEnum.CustomFieldStatus);

                    /** CustomField entityType. */
                    public entityType: (google.ads.admanager.v1.CustomFieldEntityTypeEnum.CustomFieldEntityType|keyof typeof google.ads.admanager.v1.CustomFieldEntityTypeEnum.CustomFieldEntityType);

                    /** CustomField dataType. */
                    public dataType: (google.ads.admanager.v1.CustomFieldDataTypeEnum.CustomFieldDataType|keyof typeof google.ads.admanager.v1.CustomFieldDataTypeEnum.CustomFieldDataType);

                    /** CustomField visibility. */
                    public visibility: (google.ads.admanager.v1.CustomFieldVisibilityEnum.CustomFieldVisibility|keyof typeof google.ads.admanager.v1.CustomFieldVisibilityEnum.CustomFieldVisibility);

                    /** CustomField options. */
                    public options: google.ads.admanager.v1.ICustomFieldOption[];

                    /**
                     * Creates a new CustomField instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomField instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomField): google.ads.admanager.v1.CustomField;

                    /**
                     * Encodes the specified CustomField message. Does not implicitly {@link google.ads.admanager.v1.CustomField.verify|verify} messages.
                     * @param message CustomField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomField message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomField.verify|verify} messages.
                     * @param message CustomField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomField message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomField;

                    /**
                     * Decodes a CustomField message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomField;

                    /**
                     * Verifies a CustomField message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomField message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomField
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomField;

                    /**
                     * Creates a plain object from a CustomField message. Also converts values to other types if specified.
                     * @param message CustomField
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomField to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomField
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomFieldOption. */
                interface ICustomFieldOption {

                    /** CustomFieldOption customFieldOptionId */
                    customFieldOptionId?: (number|Long|string|null);

                    /** CustomFieldOption displayName */
                    displayName?: (string|null);
                }

                /** Represents a CustomFieldOption. */
                class CustomFieldOption implements ICustomFieldOption {

                    /**
                     * Constructs a new CustomFieldOption.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomFieldOption);

                    /** CustomFieldOption customFieldOptionId. */
                    public customFieldOptionId: (number|Long|string);

                    /** CustomFieldOption displayName. */
                    public displayName: string;

                    /**
                     * Creates a new CustomFieldOption instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomFieldOption instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomFieldOption): google.ads.admanager.v1.CustomFieldOption;

                    /**
                     * Encodes the specified CustomFieldOption message. Does not implicitly {@link google.ads.admanager.v1.CustomFieldOption.verify|verify} messages.
                     * @param message CustomFieldOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomFieldOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomFieldOption message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomFieldOption.verify|verify} messages.
                     * @param message CustomFieldOption message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomFieldOption, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomFieldOption message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomFieldOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomFieldOption;

                    /**
                     * Decodes a CustomFieldOption message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomFieldOption
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomFieldOption;

                    /**
                     * Verifies a CustomFieldOption message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomFieldOption message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomFieldOption
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomFieldOption;

                    /**
                     * Creates a plain object from a CustomFieldOption message. Also converts values to other types if specified.
                     * @param message CustomFieldOption
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomFieldOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomFieldOption to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomFieldOption
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a CustomFieldService */
                class CustomFieldService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new CustomFieldService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new CustomFieldService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): CustomFieldService;

                    /**
                     * Calls GetCustomField.
                     * @param request GetCustomFieldRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CustomField
                     */
                    public getCustomField(request: google.ads.admanager.v1.IGetCustomFieldRequest, callback: google.ads.admanager.v1.CustomFieldService.GetCustomFieldCallback): void;

                    /**
                     * Calls GetCustomField.
                     * @param request GetCustomFieldRequest message or plain object
                     * @returns Promise
                     */
                    public getCustomField(request: google.ads.admanager.v1.IGetCustomFieldRequest): Promise<google.ads.admanager.v1.CustomField>;

                    /**
                     * Calls ListCustomFields.
                     * @param request ListCustomFieldsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListCustomFieldsResponse
                     */
                    public listCustomFields(request: google.ads.admanager.v1.IListCustomFieldsRequest, callback: google.ads.admanager.v1.CustomFieldService.ListCustomFieldsCallback): void;

                    /**
                     * Calls ListCustomFields.
                     * @param request ListCustomFieldsRequest message or plain object
                     * @returns Promise
                     */
                    public listCustomFields(request: google.ads.admanager.v1.IListCustomFieldsRequest): Promise<google.ads.admanager.v1.ListCustomFieldsResponse>;
                }

                namespace CustomFieldService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CustomFieldService|getCustomField}.
                     * @param error Error, if any
                     * @param [response] CustomField
                     */
                    type GetCustomFieldCallback = (error: (Error|null), response?: google.ads.admanager.v1.CustomField) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CustomFieldService|listCustomFields}.
                     * @param error Error, if any
                     * @param [response] ListCustomFieldsResponse
                     */
                    type ListCustomFieldsCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListCustomFieldsResponse) => void;
                }

                /** Properties of a GetCustomFieldRequest. */
                interface IGetCustomFieldRequest {

                    /** GetCustomFieldRequest name */
                    name?: (string|null);
                }

                /** Represents a GetCustomFieldRequest. */
                class GetCustomFieldRequest implements IGetCustomFieldRequest {

                    /**
                     * Constructs a new GetCustomFieldRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetCustomFieldRequest);

                    /** GetCustomFieldRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetCustomFieldRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetCustomFieldRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetCustomFieldRequest): google.ads.admanager.v1.GetCustomFieldRequest;

                    /**
                     * Encodes the specified GetCustomFieldRequest message. Does not implicitly {@link google.ads.admanager.v1.GetCustomFieldRequest.verify|verify} messages.
                     * @param message GetCustomFieldRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetCustomFieldRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetCustomFieldRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetCustomFieldRequest.verify|verify} messages.
                     * @param message GetCustomFieldRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetCustomFieldRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetCustomFieldRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetCustomFieldRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetCustomFieldRequest;

                    /**
                     * Decodes a GetCustomFieldRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetCustomFieldRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetCustomFieldRequest;

                    /**
                     * Verifies a GetCustomFieldRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetCustomFieldRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetCustomFieldRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetCustomFieldRequest;

                    /**
                     * Creates a plain object from a GetCustomFieldRequest message. Also converts values to other types if specified.
                     * @param message GetCustomFieldRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetCustomFieldRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetCustomFieldRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetCustomFieldRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCustomFieldsRequest. */
                interface IListCustomFieldsRequest {

                    /** ListCustomFieldsRequest parent */
                    parent?: (string|null);

                    /** ListCustomFieldsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListCustomFieldsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListCustomFieldsRequest filter */
                    filter?: (string|null);

                    /** ListCustomFieldsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListCustomFieldsRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListCustomFieldsRequest. */
                class ListCustomFieldsRequest implements IListCustomFieldsRequest {

                    /**
                     * Constructs a new ListCustomFieldsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCustomFieldsRequest);

                    /** ListCustomFieldsRequest parent. */
                    public parent: string;

                    /** ListCustomFieldsRequest pageSize. */
                    public pageSize: number;

                    /** ListCustomFieldsRequest pageToken. */
                    public pageToken: string;

                    /** ListCustomFieldsRequest filter. */
                    public filter: string;

                    /** ListCustomFieldsRequest orderBy. */
                    public orderBy: string;

                    /** ListCustomFieldsRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListCustomFieldsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCustomFieldsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCustomFieldsRequest): google.ads.admanager.v1.ListCustomFieldsRequest;

                    /**
                     * Encodes the specified ListCustomFieldsRequest message. Does not implicitly {@link google.ads.admanager.v1.ListCustomFieldsRequest.verify|verify} messages.
                     * @param message ListCustomFieldsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCustomFieldsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCustomFieldsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCustomFieldsRequest.verify|verify} messages.
                     * @param message ListCustomFieldsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCustomFieldsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCustomFieldsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCustomFieldsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCustomFieldsRequest;

                    /**
                     * Decodes a ListCustomFieldsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCustomFieldsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCustomFieldsRequest;

                    /**
                     * Verifies a ListCustomFieldsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCustomFieldsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCustomFieldsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCustomFieldsRequest;

                    /**
                     * Creates a plain object from a ListCustomFieldsRequest message. Also converts values to other types if specified.
                     * @param message ListCustomFieldsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCustomFieldsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCustomFieldsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCustomFieldsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCustomFieldsResponse. */
                interface IListCustomFieldsResponse {

                    /** ListCustomFieldsResponse customFields */
                    customFields?: (google.ads.admanager.v1.ICustomField[]|null);

                    /** ListCustomFieldsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListCustomFieldsResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListCustomFieldsResponse. */
                class ListCustomFieldsResponse implements IListCustomFieldsResponse {

                    /**
                     * Constructs a new ListCustomFieldsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCustomFieldsResponse);

                    /** ListCustomFieldsResponse customFields. */
                    public customFields: google.ads.admanager.v1.ICustomField[];

                    /** ListCustomFieldsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListCustomFieldsResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListCustomFieldsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCustomFieldsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCustomFieldsResponse): google.ads.admanager.v1.ListCustomFieldsResponse;

                    /**
                     * Encodes the specified ListCustomFieldsResponse message. Does not implicitly {@link google.ads.admanager.v1.ListCustomFieldsResponse.verify|verify} messages.
                     * @param message ListCustomFieldsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCustomFieldsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCustomFieldsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCustomFieldsResponse.verify|verify} messages.
                     * @param message ListCustomFieldsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCustomFieldsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCustomFieldsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCustomFieldsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCustomFieldsResponse;

                    /**
                     * Decodes a ListCustomFieldsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCustomFieldsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCustomFieldsResponse;

                    /**
                     * Verifies a ListCustomFieldsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCustomFieldsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCustomFieldsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCustomFieldsResponse;

                    /**
                     * Creates a plain object from a ListCustomFieldsResponse message. Also converts values to other types if specified.
                     * @param message ListCustomFieldsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCustomFieldsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCustomFieldsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCustomFieldsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomFieldValue. */
                interface ICustomFieldValue {

                    /** CustomFieldValue customField */
                    customField?: (string|null);

                    /** CustomFieldValue value */
                    value?: (google.ads.admanager.v1.CustomFieldValue.IValue|null);
                }

                /** Represents a CustomFieldValue. */
                class CustomFieldValue implements ICustomFieldValue {

                    /**
                     * Constructs a new CustomFieldValue.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomFieldValue);

                    /** CustomFieldValue customField. */
                    public customField: string;

                    /** CustomFieldValue value. */
                    public value?: (google.ads.admanager.v1.CustomFieldValue.IValue|null);

                    /** CustomFieldValue _value. */
                    public _value?: "value";

                    /**
                     * Creates a new CustomFieldValue instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomFieldValue instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomFieldValue): google.ads.admanager.v1.CustomFieldValue;

                    /**
                     * Encodes the specified CustomFieldValue message. Does not implicitly {@link google.ads.admanager.v1.CustomFieldValue.verify|verify} messages.
                     * @param message CustomFieldValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomFieldValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomFieldValue message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomFieldValue.verify|verify} messages.
                     * @param message CustomFieldValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomFieldValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomFieldValue message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomFieldValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomFieldValue;

                    /**
                     * Decodes a CustomFieldValue message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomFieldValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomFieldValue;

                    /**
                     * Verifies a CustomFieldValue message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomFieldValue message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomFieldValue
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomFieldValue;

                    /**
                     * Creates a plain object from a CustomFieldValue message. Also converts values to other types if specified.
                     * @param message CustomFieldValue
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomFieldValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomFieldValue to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomFieldValue
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomFieldValue {

                    /** Properties of a Value. */
                    interface IValue {

                        /** Value dropdownValue */
                        dropdownValue?: (number|Long|string|null);

                        /** Value stringValue */
                        stringValue?: (string|null);

                        /** Value numberValue */
                        numberValue?: (number|null);

                        /** Value toggleValue */
                        toggleValue?: (boolean|null);
                    }

                    /** Represents a Value. */
                    class Value implements IValue {

                        /**
                         * Constructs a new Value.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.CustomFieldValue.IValue);

                        /** Value dropdownValue. */
                        public dropdownValue?: (number|Long|string|null);

                        /** Value stringValue. */
                        public stringValue?: (string|null);

                        /** Value numberValue. */
                        public numberValue?: (number|null);

                        /** Value toggleValue. */
                        public toggleValue?: (boolean|null);

                        /** Value value. */
                        public value?: ("dropdownValue"|"stringValue"|"numberValue"|"toggleValue");

                        /**
                         * Creates a new Value instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Value instance
                         */
                        public static create(properties?: google.ads.admanager.v1.CustomFieldValue.IValue): google.ads.admanager.v1.CustomFieldValue.Value;

                        /**
                         * Encodes the specified Value message. Does not implicitly {@link google.ads.admanager.v1.CustomFieldValue.Value.verify|verify} messages.
                         * @param message Value message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.CustomFieldValue.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Value message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomFieldValue.Value.verify|verify} messages.
                         * @param message Value message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.CustomFieldValue.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Value message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Value
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomFieldValue.Value;

                        /**
                         * Decodes a Value message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Value
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomFieldValue.Value;

                        /**
                         * Verifies a Value message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Value message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Value
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomFieldValue.Value;

                        /**
                         * Creates a plain object from a Value message. Also converts values to other types if specified.
                         * @param message Value
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.CustomFieldValue.Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Value to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Value
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a CustomTargetingKeyStatusEnum. */
                interface ICustomTargetingKeyStatusEnum {
                }

                /** Represents a CustomTargetingKeyStatusEnum. */
                class CustomTargetingKeyStatusEnum implements ICustomTargetingKeyStatusEnum {

                    /**
                     * Constructs a new CustomTargetingKeyStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomTargetingKeyStatusEnum);

                    /**
                     * Creates a new CustomTargetingKeyStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomTargetingKeyStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomTargetingKeyStatusEnum): google.ads.admanager.v1.CustomTargetingKeyStatusEnum;

                    /**
                     * Encodes the specified CustomTargetingKeyStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKeyStatusEnum.verify|verify} messages.
                     * @param message CustomTargetingKeyStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomTargetingKeyStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomTargetingKeyStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKeyStatusEnum.verify|verify} messages.
                     * @param message CustomTargetingKeyStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomTargetingKeyStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomTargetingKeyStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomTargetingKeyStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomTargetingKeyStatusEnum;

                    /**
                     * Decodes a CustomTargetingKeyStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomTargetingKeyStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomTargetingKeyStatusEnum;

                    /**
                     * Verifies a CustomTargetingKeyStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomTargetingKeyStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomTargetingKeyStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomTargetingKeyStatusEnum;

                    /**
                     * Creates a plain object from a CustomTargetingKeyStatusEnum message. Also converts values to other types if specified.
                     * @param message CustomTargetingKeyStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomTargetingKeyStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomTargetingKeyStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomTargetingKeyStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomTargetingKeyStatusEnum {

                    /** CustomTargetingKeyStatus enum. */
                    enum CustomTargetingKeyStatus {
                        CUSTOM_TARGETING_KEY_STATUS_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        INACTIVE = 2
                    }
                }

                /** Properties of a CustomTargetingKeyTypeEnum. */
                interface ICustomTargetingKeyTypeEnum {
                }

                /** Represents a CustomTargetingKeyTypeEnum. */
                class CustomTargetingKeyTypeEnum implements ICustomTargetingKeyTypeEnum {

                    /**
                     * Constructs a new CustomTargetingKeyTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomTargetingKeyTypeEnum);

                    /**
                     * Creates a new CustomTargetingKeyTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomTargetingKeyTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomTargetingKeyTypeEnum): google.ads.admanager.v1.CustomTargetingKeyTypeEnum;

                    /**
                     * Encodes the specified CustomTargetingKeyTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKeyTypeEnum.verify|verify} messages.
                     * @param message CustomTargetingKeyTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomTargetingKeyTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomTargetingKeyTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKeyTypeEnum.verify|verify} messages.
                     * @param message CustomTargetingKeyTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomTargetingKeyTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomTargetingKeyTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomTargetingKeyTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomTargetingKeyTypeEnum;

                    /**
                     * Decodes a CustomTargetingKeyTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomTargetingKeyTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomTargetingKeyTypeEnum;

                    /**
                     * Verifies a CustomTargetingKeyTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomTargetingKeyTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomTargetingKeyTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomTargetingKeyTypeEnum;

                    /**
                     * Creates a plain object from a CustomTargetingKeyTypeEnum message. Also converts values to other types if specified.
                     * @param message CustomTargetingKeyTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomTargetingKeyTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomTargetingKeyTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomTargetingKeyTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomTargetingKeyTypeEnum {

                    /** CustomTargetingKeyType enum. */
                    enum CustomTargetingKeyType {
                        CUSTOM_TARGETING_KEY_TYPE_UNSPECIFIED = 0,
                        PREDEFINED = 1,
                        FREEFORM = 2
                    }
                }

                /** Properties of a CustomTargetingKeyReportableTypeEnum. */
                interface ICustomTargetingKeyReportableTypeEnum {
                }

                /** Represents a CustomTargetingKeyReportableTypeEnum. */
                class CustomTargetingKeyReportableTypeEnum implements ICustomTargetingKeyReportableTypeEnum {

                    /**
                     * Constructs a new CustomTargetingKeyReportableTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomTargetingKeyReportableTypeEnum);

                    /**
                     * Creates a new CustomTargetingKeyReportableTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomTargetingKeyReportableTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomTargetingKeyReportableTypeEnum): google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum;

                    /**
                     * Encodes the specified CustomTargetingKeyReportableTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum.verify|verify} messages.
                     * @param message CustomTargetingKeyReportableTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomTargetingKeyReportableTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomTargetingKeyReportableTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum.verify|verify} messages.
                     * @param message CustomTargetingKeyReportableTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomTargetingKeyReportableTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomTargetingKeyReportableTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomTargetingKeyReportableTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum;

                    /**
                     * Decodes a CustomTargetingKeyReportableTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomTargetingKeyReportableTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum;

                    /**
                     * Verifies a CustomTargetingKeyReportableTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomTargetingKeyReportableTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomTargetingKeyReportableTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum;

                    /**
                     * Creates a plain object from a CustomTargetingKeyReportableTypeEnum message. Also converts values to other types if specified.
                     * @param message CustomTargetingKeyReportableTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomTargetingKeyReportableTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomTargetingKeyReportableTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomTargetingKeyReportableTypeEnum {

                    /** CustomTargetingKeyReportableType enum. */
                    enum CustomTargetingKeyReportableType {
                        CUSTOM_TARGETING_KEY_REPORTABLE_TYPE_UNSPECIFIED = 0,
                        OFF = 1,
                        ON = 2,
                        CUSTOM_DIMENSION = 3
                    }
                }

                /** Properties of a CustomTargetingKey. */
                interface ICustomTargetingKey {

                    /** CustomTargetingKey name */
                    name?: (string|null);

                    /** CustomTargetingKey customTargetingKeyId */
                    customTargetingKeyId?: (number|Long|string|null);

                    /** CustomTargetingKey adTagName */
                    adTagName?: (string|null);

                    /** CustomTargetingKey displayName */
                    displayName?: (string|null);

                    /** CustomTargetingKey type */
                    type?: (google.ads.admanager.v1.CustomTargetingKeyTypeEnum.CustomTargetingKeyType|keyof typeof google.ads.admanager.v1.CustomTargetingKeyTypeEnum.CustomTargetingKeyType|null);

                    /** CustomTargetingKey status */
                    status?: (google.ads.admanager.v1.CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus|keyof typeof google.ads.admanager.v1.CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus|null);

                    /** CustomTargetingKey reportableType */
                    reportableType?: (google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType|keyof typeof google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType|null);
                }

                /** Represents a CustomTargetingKey. */
                class CustomTargetingKey implements ICustomTargetingKey {

                    /**
                     * Constructs a new CustomTargetingKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomTargetingKey);

                    /** CustomTargetingKey name. */
                    public name: string;

                    /** CustomTargetingKey customTargetingKeyId. */
                    public customTargetingKeyId: (number|Long|string);

                    /** CustomTargetingKey adTagName. */
                    public adTagName: string;

                    /** CustomTargetingKey displayName. */
                    public displayName: string;

                    /** CustomTargetingKey type. */
                    public type: (google.ads.admanager.v1.CustomTargetingKeyTypeEnum.CustomTargetingKeyType|keyof typeof google.ads.admanager.v1.CustomTargetingKeyTypeEnum.CustomTargetingKeyType);

                    /** CustomTargetingKey status. */
                    public status: (google.ads.admanager.v1.CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus|keyof typeof google.ads.admanager.v1.CustomTargetingKeyStatusEnum.CustomTargetingKeyStatus);

                    /** CustomTargetingKey reportableType. */
                    public reportableType: (google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType|keyof typeof google.ads.admanager.v1.CustomTargetingKeyReportableTypeEnum.CustomTargetingKeyReportableType);

                    /**
                     * Creates a new CustomTargetingKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomTargetingKey instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomTargetingKey): google.ads.admanager.v1.CustomTargetingKey;

                    /**
                     * Encodes the specified CustomTargetingKey message. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKey.verify|verify} messages.
                     * @param message CustomTargetingKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomTargetingKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomTargetingKey message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingKey.verify|verify} messages.
                     * @param message CustomTargetingKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomTargetingKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomTargetingKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomTargetingKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomTargetingKey;

                    /**
                     * Decodes a CustomTargetingKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomTargetingKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomTargetingKey;

                    /**
                     * Verifies a CustomTargetingKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomTargetingKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomTargetingKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomTargetingKey;

                    /**
                     * Creates a plain object from a CustomTargetingKey message. Also converts values to other types if specified.
                     * @param message CustomTargetingKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomTargetingKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomTargetingKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomTargetingKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a CustomTargetingKeyService */
                class CustomTargetingKeyService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new CustomTargetingKeyService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new CustomTargetingKeyService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): CustomTargetingKeyService;

                    /**
                     * Calls GetCustomTargetingKey.
                     * @param request GetCustomTargetingKeyRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CustomTargetingKey
                     */
                    public getCustomTargetingKey(request: google.ads.admanager.v1.IGetCustomTargetingKeyRequest, callback: google.ads.admanager.v1.CustomTargetingKeyService.GetCustomTargetingKeyCallback): void;

                    /**
                     * Calls GetCustomTargetingKey.
                     * @param request GetCustomTargetingKeyRequest message or plain object
                     * @returns Promise
                     */
                    public getCustomTargetingKey(request: google.ads.admanager.v1.IGetCustomTargetingKeyRequest): Promise<google.ads.admanager.v1.CustomTargetingKey>;

                    /**
                     * Calls ListCustomTargetingKeys.
                     * @param request ListCustomTargetingKeysRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListCustomTargetingKeysResponse
                     */
                    public listCustomTargetingKeys(request: google.ads.admanager.v1.IListCustomTargetingKeysRequest, callback: google.ads.admanager.v1.CustomTargetingKeyService.ListCustomTargetingKeysCallback): void;

                    /**
                     * Calls ListCustomTargetingKeys.
                     * @param request ListCustomTargetingKeysRequest message or plain object
                     * @returns Promise
                     */
                    public listCustomTargetingKeys(request: google.ads.admanager.v1.IListCustomTargetingKeysRequest): Promise<google.ads.admanager.v1.ListCustomTargetingKeysResponse>;
                }

                namespace CustomTargetingKeyService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CustomTargetingKeyService|getCustomTargetingKey}.
                     * @param error Error, if any
                     * @param [response] CustomTargetingKey
                     */
                    type GetCustomTargetingKeyCallback = (error: (Error|null), response?: google.ads.admanager.v1.CustomTargetingKey) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CustomTargetingKeyService|listCustomTargetingKeys}.
                     * @param error Error, if any
                     * @param [response] ListCustomTargetingKeysResponse
                     */
                    type ListCustomTargetingKeysCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListCustomTargetingKeysResponse) => void;
                }

                /** Properties of a GetCustomTargetingKeyRequest. */
                interface IGetCustomTargetingKeyRequest {

                    /** GetCustomTargetingKeyRequest name */
                    name?: (string|null);
                }

                /** Represents a GetCustomTargetingKeyRequest. */
                class GetCustomTargetingKeyRequest implements IGetCustomTargetingKeyRequest {

                    /**
                     * Constructs a new GetCustomTargetingKeyRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetCustomTargetingKeyRequest);

                    /** GetCustomTargetingKeyRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetCustomTargetingKeyRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetCustomTargetingKeyRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetCustomTargetingKeyRequest): google.ads.admanager.v1.GetCustomTargetingKeyRequest;

                    /**
                     * Encodes the specified GetCustomTargetingKeyRequest message. Does not implicitly {@link google.ads.admanager.v1.GetCustomTargetingKeyRequest.verify|verify} messages.
                     * @param message GetCustomTargetingKeyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetCustomTargetingKeyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetCustomTargetingKeyRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetCustomTargetingKeyRequest.verify|verify} messages.
                     * @param message GetCustomTargetingKeyRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetCustomTargetingKeyRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetCustomTargetingKeyRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetCustomTargetingKeyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetCustomTargetingKeyRequest;

                    /**
                     * Decodes a GetCustomTargetingKeyRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetCustomTargetingKeyRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetCustomTargetingKeyRequest;

                    /**
                     * Verifies a GetCustomTargetingKeyRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetCustomTargetingKeyRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetCustomTargetingKeyRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetCustomTargetingKeyRequest;

                    /**
                     * Creates a plain object from a GetCustomTargetingKeyRequest message. Also converts values to other types if specified.
                     * @param message GetCustomTargetingKeyRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetCustomTargetingKeyRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetCustomTargetingKeyRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetCustomTargetingKeyRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCustomTargetingKeysRequest. */
                interface IListCustomTargetingKeysRequest {

                    /** ListCustomTargetingKeysRequest parent */
                    parent?: (string|null);

                    /** ListCustomTargetingKeysRequest pageSize */
                    pageSize?: (number|null);

                    /** ListCustomTargetingKeysRequest pageToken */
                    pageToken?: (string|null);

                    /** ListCustomTargetingKeysRequest filter */
                    filter?: (string|null);

                    /** ListCustomTargetingKeysRequest orderBy */
                    orderBy?: (string|null);

                    /** ListCustomTargetingKeysRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListCustomTargetingKeysRequest. */
                class ListCustomTargetingKeysRequest implements IListCustomTargetingKeysRequest {

                    /**
                     * Constructs a new ListCustomTargetingKeysRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCustomTargetingKeysRequest);

                    /** ListCustomTargetingKeysRequest parent. */
                    public parent: string;

                    /** ListCustomTargetingKeysRequest pageSize. */
                    public pageSize: number;

                    /** ListCustomTargetingKeysRequest pageToken. */
                    public pageToken: string;

                    /** ListCustomTargetingKeysRequest filter. */
                    public filter: string;

                    /** ListCustomTargetingKeysRequest orderBy. */
                    public orderBy: string;

                    /** ListCustomTargetingKeysRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListCustomTargetingKeysRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCustomTargetingKeysRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCustomTargetingKeysRequest): google.ads.admanager.v1.ListCustomTargetingKeysRequest;

                    /**
                     * Encodes the specified ListCustomTargetingKeysRequest message. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingKeysRequest.verify|verify} messages.
                     * @param message ListCustomTargetingKeysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCustomTargetingKeysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCustomTargetingKeysRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingKeysRequest.verify|verify} messages.
                     * @param message ListCustomTargetingKeysRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCustomTargetingKeysRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCustomTargetingKeysRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCustomTargetingKeysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCustomTargetingKeysRequest;

                    /**
                     * Decodes a ListCustomTargetingKeysRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCustomTargetingKeysRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCustomTargetingKeysRequest;

                    /**
                     * Verifies a ListCustomTargetingKeysRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCustomTargetingKeysRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCustomTargetingKeysRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCustomTargetingKeysRequest;

                    /**
                     * Creates a plain object from a ListCustomTargetingKeysRequest message. Also converts values to other types if specified.
                     * @param message ListCustomTargetingKeysRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCustomTargetingKeysRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCustomTargetingKeysRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCustomTargetingKeysRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCustomTargetingKeysResponse. */
                interface IListCustomTargetingKeysResponse {

                    /** ListCustomTargetingKeysResponse customTargetingKeys */
                    customTargetingKeys?: (google.ads.admanager.v1.ICustomTargetingKey[]|null);

                    /** ListCustomTargetingKeysResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListCustomTargetingKeysResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListCustomTargetingKeysResponse. */
                class ListCustomTargetingKeysResponse implements IListCustomTargetingKeysResponse {

                    /**
                     * Constructs a new ListCustomTargetingKeysResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCustomTargetingKeysResponse);

                    /** ListCustomTargetingKeysResponse customTargetingKeys. */
                    public customTargetingKeys: google.ads.admanager.v1.ICustomTargetingKey[];

                    /** ListCustomTargetingKeysResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListCustomTargetingKeysResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListCustomTargetingKeysResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCustomTargetingKeysResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCustomTargetingKeysResponse): google.ads.admanager.v1.ListCustomTargetingKeysResponse;

                    /**
                     * Encodes the specified ListCustomTargetingKeysResponse message. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingKeysResponse.verify|verify} messages.
                     * @param message ListCustomTargetingKeysResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCustomTargetingKeysResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCustomTargetingKeysResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingKeysResponse.verify|verify} messages.
                     * @param message ListCustomTargetingKeysResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCustomTargetingKeysResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCustomTargetingKeysResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCustomTargetingKeysResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCustomTargetingKeysResponse;

                    /**
                     * Decodes a ListCustomTargetingKeysResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCustomTargetingKeysResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCustomTargetingKeysResponse;

                    /**
                     * Verifies a ListCustomTargetingKeysResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCustomTargetingKeysResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCustomTargetingKeysResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCustomTargetingKeysResponse;

                    /**
                     * Creates a plain object from a ListCustomTargetingKeysResponse message. Also converts values to other types if specified.
                     * @param message ListCustomTargetingKeysResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCustomTargetingKeysResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCustomTargetingKeysResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCustomTargetingKeysResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomTargetingValueStatusEnum. */
                interface ICustomTargetingValueStatusEnum {
                }

                /** Represents a CustomTargetingValueStatusEnum. */
                class CustomTargetingValueStatusEnum implements ICustomTargetingValueStatusEnum {

                    /**
                     * Constructs a new CustomTargetingValueStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomTargetingValueStatusEnum);

                    /**
                     * Creates a new CustomTargetingValueStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomTargetingValueStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomTargetingValueStatusEnum): google.ads.admanager.v1.CustomTargetingValueStatusEnum;

                    /**
                     * Encodes the specified CustomTargetingValueStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingValueStatusEnum.verify|verify} messages.
                     * @param message CustomTargetingValueStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomTargetingValueStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomTargetingValueStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingValueStatusEnum.verify|verify} messages.
                     * @param message CustomTargetingValueStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomTargetingValueStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomTargetingValueStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomTargetingValueStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomTargetingValueStatusEnum;

                    /**
                     * Decodes a CustomTargetingValueStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomTargetingValueStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomTargetingValueStatusEnum;

                    /**
                     * Verifies a CustomTargetingValueStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomTargetingValueStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomTargetingValueStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomTargetingValueStatusEnum;

                    /**
                     * Creates a plain object from a CustomTargetingValueStatusEnum message. Also converts values to other types if specified.
                     * @param message CustomTargetingValueStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomTargetingValueStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomTargetingValueStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomTargetingValueStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomTargetingValueStatusEnum {

                    /** CustomTargetingValueStatus enum. */
                    enum CustomTargetingValueStatus {
                        CUSTOM_TARGETING_VALUE_STATUS_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        INACTIVE = 2
                    }
                }

                /** Properties of a CustomTargetingValueMatchTypeEnum. */
                interface ICustomTargetingValueMatchTypeEnum {
                }

                /** Represents a CustomTargetingValueMatchTypeEnum. */
                class CustomTargetingValueMatchTypeEnum implements ICustomTargetingValueMatchTypeEnum {

                    /**
                     * Constructs a new CustomTargetingValueMatchTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomTargetingValueMatchTypeEnum);

                    /**
                     * Creates a new CustomTargetingValueMatchTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomTargetingValueMatchTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomTargetingValueMatchTypeEnum): google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum;

                    /**
                     * Encodes the specified CustomTargetingValueMatchTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum.verify|verify} messages.
                     * @param message CustomTargetingValueMatchTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomTargetingValueMatchTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomTargetingValueMatchTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum.verify|verify} messages.
                     * @param message CustomTargetingValueMatchTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomTargetingValueMatchTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomTargetingValueMatchTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomTargetingValueMatchTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum;

                    /**
                     * Decodes a CustomTargetingValueMatchTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomTargetingValueMatchTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum;

                    /**
                     * Verifies a CustomTargetingValueMatchTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomTargetingValueMatchTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomTargetingValueMatchTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum;

                    /**
                     * Creates a plain object from a CustomTargetingValueMatchTypeEnum message. Also converts values to other types if specified.
                     * @param message CustomTargetingValueMatchTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomTargetingValueMatchTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomTargetingValueMatchTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomTargetingValueMatchTypeEnum {

                    /** CustomTargetingValueMatchType enum. */
                    enum CustomTargetingValueMatchType {
                        CUSTOM_TARGETING_VALUE_MATCH_TYPE_UNSPECIFIED = 0,
                        EXACT = 1,
                        BROAD = 2,
                        PREFIX = 3,
                        BROAD_PREFIX = 4,
                        SUFFIX = 5,
                        CONTAINS = 6
                    }
                }

                /** Properties of a CustomTargetingValue. */
                interface ICustomTargetingValue {

                    /** CustomTargetingValue name */
                    name?: (string|null);

                    /** CustomTargetingValue adTagName */
                    adTagName?: (string|null);

                    /** CustomTargetingValue displayName */
                    displayName?: (string|null);

                    /** CustomTargetingValue matchType */
                    matchType?: (google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType|keyof typeof google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType|null);

                    /** CustomTargetingValue status */
                    status?: (google.ads.admanager.v1.CustomTargetingValueStatusEnum.CustomTargetingValueStatus|keyof typeof google.ads.admanager.v1.CustomTargetingValueStatusEnum.CustomTargetingValueStatus|null);
                }

                /** Represents a CustomTargetingValue. */
                class CustomTargetingValue implements ICustomTargetingValue {

                    /**
                     * Constructs a new CustomTargetingValue.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICustomTargetingValue);

                    /** CustomTargetingValue name. */
                    public name: string;

                    /** CustomTargetingValue adTagName. */
                    public adTagName: string;

                    /** CustomTargetingValue displayName. */
                    public displayName: string;

                    /** CustomTargetingValue matchType. */
                    public matchType: (google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType|keyof typeof google.ads.admanager.v1.CustomTargetingValueMatchTypeEnum.CustomTargetingValueMatchType);

                    /** CustomTargetingValue status. */
                    public status: (google.ads.admanager.v1.CustomTargetingValueStatusEnum.CustomTargetingValueStatus|keyof typeof google.ads.admanager.v1.CustomTargetingValueStatusEnum.CustomTargetingValueStatus);

                    /**
                     * Creates a new CustomTargetingValue instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomTargetingValue instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICustomTargetingValue): google.ads.admanager.v1.CustomTargetingValue;

                    /**
                     * Encodes the specified CustomTargetingValue message. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingValue.verify|verify} messages.
                     * @param message CustomTargetingValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICustomTargetingValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomTargetingValue message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CustomTargetingValue.verify|verify} messages.
                     * @param message CustomTargetingValue message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICustomTargetingValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomTargetingValue message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomTargetingValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CustomTargetingValue;

                    /**
                     * Decodes a CustomTargetingValue message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomTargetingValue
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CustomTargetingValue;

                    /**
                     * Verifies a CustomTargetingValue message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomTargetingValue message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomTargetingValue
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CustomTargetingValue;

                    /**
                     * Creates a plain object from a CustomTargetingValue message. Also converts values to other types if specified.
                     * @param message CustomTargetingValue
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CustomTargetingValue, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomTargetingValue to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomTargetingValue
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a CustomTargetingValueService */
                class CustomTargetingValueService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new CustomTargetingValueService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new CustomTargetingValueService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): CustomTargetingValueService;

                    /**
                     * Calls GetCustomTargetingValue.
                     * @param request GetCustomTargetingValueRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and CustomTargetingValue
                     */
                    public getCustomTargetingValue(request: google.ads.admanager.v1.IGetCustomTargetingValueRequest, callback: google.ads.admanager.v1.CustomTargetingValueService.GetCustomTargetingValueCallback): void;

                    /**
                     * Calls GetCustomTargetingValue.
                     * @param request GetCustomTargetingValueRequest message or plain object
                     * @returns Promise
                     */
                    public getCustomTargetingValue(request: google.ads.admanager.v1.IGetCustomTargetingValueRequest): Promise<google.ads.admanager.v1.CustomTargetingValue>;

                    /**
                     * Calls ListCustomTargetingValues.
                     * @param request ListCustomTargetingValuesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListCustomTargetingValuesResponse
                     */
                    public listCustomTargetingValues(request: google.ads.admanager.v1.IListCustomTargetingValuesRequest, callback: google.ads.admanager.v1.CustomTargetingValueService.ListCustomTargetingValuesCallback): void;

                    /**
                     * Calls ListCustomTargetingValues.
                     * @param request ListCustomTargetingValuesRequest message or plain object
                     * @returns Promise
                     */
                    public listCustomTargetingValues(request: google.ads.admanager.v1.IListCustomTargetingValuesRequest): Promise<google.ads.admanager.v1.ListCustomTargetingValuesResponse>;
                }

                namespace CustomTargetingValueService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CustomTargetingValueService|getCustomTargetingValue}.
                     * @param error Error, if any
                     * @param [response] CustomTargetingValue
                     */
                    type GetCustomTargetingValueCallback = (error: (Error|null), response?: google.ads.admanager.v1.CustomTargetingValue) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.CustomTargetingValueService|listCustomTargetingValues}.
                     * @param error Error, if any
                     * @param [response] ListCustomTargetingValuesResponse
                     */
                    type ListCustomTargetingValuesCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListCustomTargetingValuesResponse) => void;
                }

                /** Properties of a GetCustomTargetingValueRequest. */
                interface IGetCustomTargetingValueRequest {

                    /** GetCustomTargetingValueRequest name */
                    name?: (string|null);
                }

                /** Represents a GetCustomTargetingValueRequest. */
                class GetCustomTargetingValueRequest implements IGetCustomTargetingValueRequest {

                    /**
                     * Constructs a new GetCustomTargetingValueRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetCustomTargetingValueRequest);

                    /** GetCustomTargetingValueRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetCustomTargetingValueRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetCustomTargetingValueRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetCustomTargetingValueRequest): google.ads.admanager.v1.GetCustomTargetingValueRequest;

                    /**
                     * Encodes the specified GetCustomTargetingValueRequest message. Does not implicitly {@link google.ads.admanager.v1.GetCustomTargetingValueRequest.verify|verify} messages.
                     * @param message GetCustomTargetingValueRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetCustomTargetingValueRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetCustomTargetingValueRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetCustomTargetingValueRequest.verify|verify} messages.
                     * @param message GetCustomTargetingValueRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetCustomTargetingValueRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetCustomTargetingValueRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetCustomTargetingValueRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetCustomTargetingValueRequest;

                    /**
                     * Decodes a GetCustomTargetingValueRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetCustomTargetingValueRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetCustomTargetingValueRequest;

                    /**
                     * Verifies a GetCustomTargetingValueRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetCustomTargetingValueRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetCustomTargetingValueRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetCustomTargetingValueRequest;

                    /**
                     * Creates a plain object from a GetCustomTargetingValueRequest message. Also converts values to other types if specified.
                     * @param message GetCustomTargetingValueRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetCustomTargetingValueRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetCustomTargetingValueRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetCustomTargetingValueRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCustomTargetingValuesRequest. */
                interface IListCustomTargetingValuesRequest {

                    /** ListCustomTargetingValuesRequest parent */
                    parent?: (string|null);

                    /** ListCustomTargetingValuesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListCustomTargetingValuesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListCustomTargetingValuesRequest filter */
                    filter?: (string|null);

                    /** ListCustomTargetingValuesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListCustomTargetingValuesRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListCustomTargetingValuesRequest. */
                class ListCustomTargetingValuesRequest implements IListCustomTargetingValuesRequest {

                    /**
                     * Constructs a new ListCustomTargetingValuesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCustomTargetingValuesRequest);

                    /** ListCustomTargetingValuesRequest parent. */
                    public parent: string;

                    /** ListCustomTargetingValuesRequest pageSize. */
                    public pageSize: number;

                    /** ListCustomTargetingValuesRequest pageToken. */
                    public pageToken: string;

                    /** ListCustomTargetingValuesRequest filter. */
                    public filter: string;

                    /** ListCustomTargetingValuesRequest orderBy. */
                    public orderBy: string;

                    /** ListCustomTargetingValuesRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListCustomTargetingValuesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCustomTargetingValuesRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCustomTargetingValuesRequest): google.ads.admanager.v1.ListCustomTargetingValuesRequest;

                    /**
                     * Encodes the specified ListCustomTargetingValuesRequest message. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingValuesRequest.verify|verify} messages.
                     * @param message ListCustomTargetingValuesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCustomTargetingValuesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCustomTargetingValuesRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingValuesRequest.verify|verify} messages.
                     * @param message ListCustomTargetingValuesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCustomTargetingValuesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCustomTargetingValuesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCustomTargetingValuesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCustomTargetingValuesRequest;

                    /**
                     * Decodes a ListCustomTargetingValuesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCustomTargetingValuesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCustomTargetingValuesRequest;

                    /**
                     * Verifies a ListCustomTargetingValuesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCustomTargetingValuesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCustomTargetingValuesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCustomTargetingValuesRequest;

                    /**
                     * Creates a plain object from a ListCustomTargetingValuesRequest message. Also converts values to other types if specified.
                     * @param message ListCustomTargetingValuesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCustomTargetingValuesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCustomTargetingValuesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCustomTargetingValuesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListCustomTargetingValuesResponse. */
                interface IListCustomTargetingValuesResponse {

                    /** ListCustomTargetingValuesResponse customTargetingValues */
                    customTargetingValues?: (google.ads.admanager.v1.ICustomTargetingValue[]|null);

                    /** ListCustomTargetingValuesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListCustomTargetingValuesResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListCustomTargetingValuesResponse. */
                class ListCustomTargetingValuesResponse implements IListCustomTargetingValuesResponse {

                    /**
                     * Constructs a new ListCustomTargetingValuesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListCustomTargetingValuesResponse);

                    /** ListCustomTargetingValuesResponse customTargetingValues. */
                    public customTargetingValues: google.ads.admanager.v1.ICustomTargetingValue[];

                    /** ListCustomTargetingValuesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListCustomTargetingValuesResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListCustomTargetingValuesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListCustomTargetingValuesResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListCustomTargetingValuesResponse): google.ads.admanager.v1.ListCustomTargetingValuesResponse;

                    /**
                     * Encodes the specified ListCustomTargetingValuesResponse message. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingValuesResponse.verify|verify} messages.
                     * @param message ListCustomTargetingValuesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListCustomTargetingValuesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListCustomTargetingValuesResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListCustomTargetingValuesResponse.verify|verify} messages.
                     * @param message ListCustomTargetingValuesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListCustomTargetingValuesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListCustomTargetingValuesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListCustomTargetingValuesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListCustomTargetingValuesResponse;

                    /**
                     * Decodes a ListCustomTargetingValuesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListCustomTargetingValuesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListCustomTargetingValuesResponse;

                    /**
                     * Verifies a ListCustomTargetingValuesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListCustomTargetingValuesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListCustomTargetingValuesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListCustomTargetingValuesResponse;

                    /**
                     * Creates a plain object from a ListCustomTargetingValuesResponse message. Also converts values to other types if specified.
                     * @param message ListCustomTargetingValuesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListCustomTargetingValuesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListCustomTargetingValuesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListCustomTargetingValuesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EntitySignalsMapping. */
                interface IEntitySignalsMapping {

                    /** EntitySignalsMapping audienceSegmentId */
                    audienceSegmentId?: (number|Long|string|null);

                    /** EntitySignalsMapping contentBundleId */
                    contentBundleId?: (number|Long|string|null);

                    /** EntitySignalsMapping customTargetingValueId */
                    customTargetingValueId?: (number|Long|string|null);

                    /** EntitySignalsMapping name */
                    name?: (string|null);

                    /** EntitySignalsMapping entitySignalsMappingId */
                    entitySignalsMappingId?: (number|Long|string|null);

                    /** EntitySignalsMapping taxonomyCategoryIds */
                    taxonomyCategoryIds?: ((number|Long|string)[]|null);
                }

                /** Represents an EntitySignalsMapping. */
                class EntitySignalsMapping implements IEntitySignalsMapping {

                    /**
                     * Constructs a new EntitySignalsMapping.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IEntitySignalsMapping);

                    /** EntitySignalsMapping audienceSegmentId. */
                    public audienceSegmentId?: (number|Long|string|null);

                    /** EntitySignalsMapping contentBundleId. */
                    public contentBundleId?: (number|Long|string|null);

                    /** EntitySignalsMapping customTargetingValueId. */
                    public customTargetingValueId?: (number|Long|string|null);

                    /** EntitySignalsMapping name. */
                    public name: string;

                    /** EntitySignalsMapping entitySignalsMappingId. */
                    public entitySignalsMappingId: (number|Long|string);

                    /** EntitySignalsMapping taxonomyCategoryIds. */
                    public taxonomyCategoryIds: (number|Long|string)[];

                    /** EntitySignalsMapping entity. */
                    public entity?: ("audienceSegmentId"|"contentBundleId"|"customTargetingValueId");

                    /**
                     * Creates a new EntitySignalsMapping instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EntitySignalsMapping instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IEntitySignalsMapping): google.ads.admanager.v1.EntitySignalsMapping;

                    /**
                     * Encodes the specified EntitySignalsMapping message. Does not implicitly {@link google.ads.admanager.v1.EntitySignalsMapping.verify|verify} messages.
                     * @param message EntitySignalsMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IEntitySignalsMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EntitySignalsMapping message, length delimited. Does not implicitly {@link google.ads.admanager.v1.EntitySignalsMapping.verify|verify} messages.
                     * @param message EntitySignalsMapping message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IEntitySignalsMapping, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EntitySignalsMapping message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EntitySignalsMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.EntitySignalsMapping;

                    /**
                     * Decodes an EntitySignalsMapping message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EntitySignalsMapping
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.EntitySignalsMapping;

                    /**
                     * Verifies an EntitySignalsMapping message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an EntitySignalsMapping message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EntitySignalsMapping
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.EntitySignalsMapping;

                    /**
                     * Creates a plain object from an EntitySignalsMapping message. Also converts values to other types if specified.
                     * @param message EntitySignalsMapping
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.EntitySignalsMapping, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EntitySignalsMapping to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EntitySignalsMapping
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an EntitySignalsMappingService */
                class EntitySignalsMappingService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new EntitySignalsMappingService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new EntitySignalsMappingService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): EntitySignalsMappingService;

                    /**
                     * Calls GetEntitySignalsMapping.
                     * @param request GetEntitySignalsMappingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntitySignalsMapping
                     */
                    public getEntitySignalsMapping(request: google.ads.admanager.v1.IGetEntitySignalsMappingRequest, callback: google.ads.admanager.v1.EntitySignalsMappingService.GetEntitySignalsMappingCallback): void;

                    /**
                     * Calls GetEntitySignalsMapping.
                     * @param request GetEntitySignalsMappingRequest message or plain object
                     * @returns Promise
                     */
                    public getEntitySignalsMapping(request: google.ads.admanager.v1.IGetEntitySignalsMappingRequest): Promise<google.ads.admanager.v1.EntitySignalsMapping>;

                    /**
                     * Calls ListEntitySignalsMappings.
                     * @param request ListEntitySignalsMappingsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListEntitySignalsMappingsResponse
                     */
                    public listEntitySignalsMappings(request: google.ads.admanager.v1.IListEntitySignalsMappingsRequest, callback: google.ads.admanager.v1.EntitySignalsMappingService.ListEntitySignalsMappingsCallback): void;

                    /**
                     * Calls ListEntitySignalsMappings.
                     * @param request ListEntitySignalsMappingsRequest message or plain object
                     * @returns Promise
                     */
                    public listEntitySignalsMappings(request: google.ads.admanager.v1.IListEntitySignalsMappingsRequest): Promise<google.ads.admanager.v1.ListEntitySignalsMappingsResponse>;

                    /**
                     * Calls CreateEntitySignalsMapping.
                     * @param request CreateEntitySignalsMappingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntitySignalsMapping
                     */
                    public createEntitySignalsMapping(request: google.ads.admanager.v1.ICreateEntitySignalsMappingRequest, callback: google.ads.admanager.v1.EntitySignalsMappingService.CreateEntitySignalsMappingCallback): void;

                    /**
                     * Calls CreateEntitySignalsMapping.
                     * @param request CreateEntitySignalsMappingRequest message or plain object
                     * @returns Promise
                     */
                    public createEntitySignalsMapping(request: google.ads.admanager.v1.ICreateEntitySignalsMappingRequest): Promise<google.ads.admanager.v1.EntitySignalsMapping>;

                    /**
                     * Calls UpdateEntitySignalsMapping.
                     * @param request UpdateEntitySignalsMappingRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and EntitySignalsMapping
                     */
                    public updateEntitySignalsMapping(request: google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest, callback: google.ads.admanager.v1.EntitySignalsMappingService.UpdateEntitySignalsMappingCallback): void;

                    /**
                     * Calls UpdateEntitySignalsMapping.
                     * @param request UpdateEntitySignalsMappingRequest message or plain object
                     * @returns Promise
                     */
                    public updateEntitySignalsMapping(request: google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest): Promise<google.ads.admanager.v1.EntitySignalsMapping>;

                    /**
                     * Calls BatchCreateEntitySignalsMappings.
                     * @param request BatchCreateEntitySignalsMappingsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BatchCreateEntitySignalsMappingsResponse
                     */
                    public batchCreateEntitySignalsMappings(request: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsRequest, callback: google.ads.admanager.v1.EntitySignalsMappingService.BatchCreateEntitySignalsMappingsCallback): void;

                    /**
                     * Calls BatchCreateEntitySignalsMappings.
                     * @param request BatchCreateEntitySignalsMappingsRequest message or plain object
                     * @returns Promise
                     */
                    public batchCreateEntitySignalsMappings(request: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsRequest): Promise<google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse>;

                    /**
                     * Calls BatchUpdateEntitySignalsMappings.
                     * @param request BatchUpdateEntitySignalsMappingsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and BatchUpdateEntitySignalsMappingsResponse
                     */
                    public batchUpdateEntitySignalsMappings(request: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsRequest, callback: google.ads.admanager.v1.EntitySignalsMappingService.BatchUpdateEntitySignalsMappingsCallback): void;

                    /**
                     * Calls BatchUpdateEntitySignalsMappings.
                     * @param request BatchUpdateEntitySignalsMappingsRequest message or plain object
                     * @returns Promise
                     */
                    public batchUpdateEntitySignalsMappings(request: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsRequest): Promise<google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse>;
                }

                namespace EntitySignalsMappingService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.EntitySignalsMappingService|getEntitySignalsMapping}.
                     * @param error Error, if any
                     * @param [response] EntitySignalsMapping
                     */
                    type GetEntitySignalsMappingCallback = (error: (Error|null), response?: google.ads.admanager.v1.EntitySignalsMapping) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.EntitySignalsMappingService|listEntitySignalsMappings}.
                     * @param error Error, if any
                     * @param [response] ListEntitySignalsMappingsResponse
                     */
                    type ListEntitySignalsMappingsCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListEntitySignalsMappingsResponse) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.EntitySignalsMappingService|createEntitySignalsMapping}.
                     * @param error Error, if any
                     * @param [response] EntitySignalsMapping
                     */
                    type CreateEntitySignalsMappingCallback = (error: (Error|null), response?: google.ads.admanager.v1.EntitySignalsMapping) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.EntitySignalsMappingService|updateEntitySignalsMapping}.
                     * @param error Error, if any
                     * @param [response] EntitySignalsMapping
                     */
                    type UpdateEntitySignalsMappingCallback = (error: (Error|null), response?: google.ads.admanager.v1.EntitySignalsMapping) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.EntitySignalsMappingService|batchCreateEntitySignalsMappings}.
                     * @param error Error, if any
                     * @param [response] BatchCreateEntitySignalsMappingsResponse
                     */
                    type BatchCreateEntitySignalsMappingsCallback = (error: (Error|null), response?: google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.EntitySignalsMappingService|batchUpdateEntitySignalsMappings}.
                     * @param error Error, if any
                     * @param [response] BatchUpdateEntitySignalsMappingsResponse
                     */
                    type BatchUpdateEntitySignalsMappingsCallback = (error: (Error|null), response?: google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse) => void;
                }

                /** Properties of a GetEntitySignalsMappingRequest. */
                interface IGetEntitySignalsMappingRequest {

                    /** GetEntitySignalsMappingRequest name */
                    name?: (string|null);
                }

                /** Represents a GetEntitySignalsMappingRequest. */
                class GetEntitySignalsMappingRequest implements IGetEntitySignalsMappingRequest {

                    /**
                     * Constructs a new GetEntitySignalsMappingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetEntitySignalsMappingRequest);

                    /** GetEntitySignalsMappingRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetEntitySignalsMappingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetEntitySignalsMappingRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetEntitySignalsMappingRequest): google.ads.admanager.v1.GetEntitySignalsMappingRequest;

                    /**
                     * Encodes the specified GetEntitySignalsMappingRequest message. Does not implicitly {@link google.ads.admanager.v1.GetEntitySignalsMappingRequest.verify|verify} messages.
                     * @param message GetEntitySignalsMappingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetEntitySignalsMappingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetEntitySignalsMappingRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetEntitySignalsMappingRequest.verify|verify} messages.
                     * @param message GetEntitySignalsMappingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetEntitySignalsMappingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetEntitySignalsMappingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetEntitySignalsMappingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetEntitySignalsMappingRequest;

                    /**
                     * Decodes a GetEntitySignalsMappingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetEntitySignalsMappingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetEntitySignalsMappingRequest;

                    /**
                     * Verifies a GetEntitySignalsMappingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetEntitySignalsMappingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetEntitySignalsMappingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetEntitySignalsMappingRequest;

                    /**
                     * Creates a plain object from a GetEntitySignalsMappingRequest message. Also converts values to other types if specified.
                     * @param message GetEntitySignalsMappingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetEntitySignalsMappingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetEntitySignalsMappingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetEntitySignalsMappingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEntitySignalsMappingsRequest. */
                interface IListEntitySignalsMappingsRequest {

                    /** ListEntitySignalsMappingsRequest parent */
                    parent?: (string|null);

                    /** ListEntitySignalsMappingsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListEntitySignalsMappingsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListEntitySignalsMappingsRequest filter */
                    filter?: (string|null);

                    /** ListEntitySignalsMappingsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListEntitySignalsMappingsRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListEntitySignalsMappingsRequest. */
                class ListEntitySignalsMappingsRequest implements IListEntitySignalsMappingsRequest {

                    /**
                     * Constructs a new ListEntitySignalsMappingsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListEntitySignalsMappingsRequest);

                    /** ListEntitySignalsMappingsRequest parent. */
                    public parent: string;

                    /** ListEntitySignalsMappingsRequest pageSize. */
                    public pageSize: number;

                    /** ListEntitySignalsMappingsRequest pageToken. */
                    public pageToken: string;

                    /** ListEntitySignalsMappingsRequest filter. */
                    public filter: string;

                    /** ListEntitySignalsMappingsRequest orderBy. */
                    public orderBy: string;

                    /** ListEntitySignalsMappingsRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListEntitySignalsMappingsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEntitySignalsMappingsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListEntitySignalsMappingsRequest): google.ads.admanager.v1.ListEntitySignalsMappingsRequest;

                    /**
                     * Encodes the specified ListEntitySignalsMappingsRequest message. Does not implicitly {@link google.ads.admanager.v1.ListEntitySignalsMappingsRequest.verify|verify} messages.
                     * @param message ListEntitySignalsMappingsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListEntitySignalsMappingsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEntitySignalsMappingsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListEntitySignalsMappingsRequest.verify|verify} messages.
                     * @param message ListEntitySignalsMappingsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListEntitySignalsMappingsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEntitySignalsMappingsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEntitySignalsMappingsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListEntitySignalsMappingsRequest;

                    /**
                     * Decodes a ListEntitySignalsMappingsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEntitySignalsMappingsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListEntitySignalsMappingsRequest;

                    /**
                     * Verifies a ListEntitySignalsMappingsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListEntitySignalsMappingsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEntitySignalsMappingsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListEntitySignalsMappingsRequest;

                    /**
                     * Creates a plain object from a ListEntitySignalsMappingsRequest message. Also converts values to other types if specified.
                     * @param message ListEntitySignalsMappingsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListEntitySignalsMappingsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEntitySignalsMappingsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEntitySignalsMappingsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateEntitySignalsMappingRequest. */
                interface ICreateEntitySignalsMappingRequest {

                    /** CreateEntitySignalsMappingRequest parent */
                    parent?: (string|null);

                    /** CreateEntitySignalsMappingRequest entitySignalsMapping */
                    entitySignalsMapping?: (google.ads.admanager.v1.IEntitySignalsMapping|null);
                }

                /** Represents a CreateEntitySignalsMappingRequest. */
                class CreateEntitySignalsMappingRequest implements ICreateEntitySignalsMappingRequest {

                    /**
                     * Constructs a new CreateEntitySignalsMappingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICreateEntitySignalsMappingRequest);

                    /** CreateEntitySignalsMappingRequest parent. */
                    public parent: string;

                    /** CreateEntitySignalsMappingRequest entitySignalsMapping. */
                    public entitySignalsMapping?: (google.ads.admanager.v1.IEntitySignalsMapping|null);

                    /**
                     * Creates a new CreateEntitySignalsMappingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateEntitySignalsMappingRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICreateEntitySignalsMappingRequest): google.ads.admanager.v1.CreateEntitySignalsMappingRequest;

                    /**
                     * Encodes the specified CreateEntitySignalsMappingRequest message. Does not implicitly {@link google.ads.admanager.v1.CreateEntitySignalsMappingRequest.verify|verify} messages.
                     * @param message CreateEntitySignalsMappingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICreateEntitySignalsMappingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateEntitySignalsMappingRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CreateEntitySignalsMappingRequest.verify|verify} messages.
                     * @param message CreateEntitySignalsMappingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICreateEntitySignalsMappingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateEntitySignalsMappingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateEntitySignalsMappingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CreateEntitySignalsMappingRequest;

                    /**
                     * Decodes a CreateEntitySignalsMappingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateEntitySignalsMappingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CreateEntitySignalsMappingRequest;

                    /**
                     * Verifies a CreateEntitySignalsMappingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateEntitySignalsMappingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateEntitySignalsMappingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CreateEntitySignalsMappingRequest;

                    /**
                     * Creates a plain object from a CreateEntitySignalsMappingRequest message. Also converts values to other types if specified.
                     * @param message CreateEntitySignalsMappingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CreateEntitySignalsMappingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateEntitySignalsMappingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateEntitySignalsMappingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateEntitySignalsMappingRequest. */
                interface IUpdateEntitySignalsMappingRequest {

                    /** UpdateEntitySignalsMappingRequest entitySignalsMapping */
                    entitySignalsMapping?: (google.ads.admanager.v1.IEntitySignalsMapping|null);

                    /** UpdateEntitySignalsMappingRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateEntitySignalsMappingRequest. */
                class UpdateEntitySignalsMappingRequest implements IUpdateEntitySignalsMappingRequest {

                    /**
                     * Constructs a new UpdateEntitySignalsMappingRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest);

                    /** UpdateEntitySignalsMappingRequest entitySignalsMapping. */
                    public entitySignalsMapping?: (google.ads.admanager.v1.IEntitySignalsMapping|null);

                    /** UpdateEntitySignalsMappingRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateEntitySignalsMappingRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateEntitySignalsMappingRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest): google.ads.admanager.v1.UpdateEntitySignalsMappingRequest;

                    /**
                     * Encodes the specified UpdateEntitySignalsMappingRequest message. Does not implicitly {@link google.ads.admanager.v1.UpdateEntitySignalsMappingRequest.verify|verify} messages.
                     * @param message UpdateEntitySignalsMappingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateEntitySignalsMappingRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.UpdateEntitySignalsMappingRequest.verify|verify} messages.
                     * @param message UpdateEntitySignalsMappingRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateEntitySignalsMappingRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateEntitySignalsMappingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.UpdateEntitySignalsMappingRequest;

                    /**
                     * Decodes an UpdateEntitySignalsMappingRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateEntitySignalsMappingRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.UpdateEntitySignalsMappingRequest;

                    /**
                     * Verifies an UpdateEntitySignalsMappingRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateEntitySignalsMappingRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateEntitySignalsMappingRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.UpdateEntitySignalsMappingRequest;

                    /**
                     * Creates a plain object from an UpdateEntitySignalsMappingRequest message. Also converts values to other types if specified.
                     * @param message UpdateEntitySignalsMappingRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.UpdateEntitySignalsMappingRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateEntitySignalsMappingRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateEntitySignalsMappingRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListEntitySignalsMappingsResponse. */
                interface IListEntitySignalsMappingsResponse {

                    /** ListEntitySignalsMappingsResponse entitySignalsMappings */
                    entitySignalsMappings?: (google.ads.admanager.v1.IEntitySignalsMapping[]|null);

                    /** ListEntitySignalsMappingsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListEntitySignalsMappingsResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListEntitySignalsMappingsResponse. */
                class ListEntitySignalsMappingsResponse implements IListEntitySignalsMappingsResponse {

                    /**
                     * Constructs a new ListEntitySignalsMappingsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListEntitySignalsMappingsResponse);

                    /** ListEntitySignalsMappingsResponse entitySignalsMappings. */
                    public entitySignalsMappings: google.ads.admanager.v1.IEntitySignalsMapping[];

                    /** ListEntitySignalsMappingsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListEntitySignalsMappingsResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListEntitySignalsMappingsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListEntitySignalsMappingsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListEntitySignalsMappingsResponse): google.ads.admanager.v1.ListEntitySignalsMappingsResponse;

                    /**
                     * Encodes the specified ListEntitySignalsMappingsResponse message. Does not implicitly {@link google.ads.admanager.v1.ListEntitySignalsMappingsResponse.verify|verify} messages.
                     * @param message ListEntitySignalsMappingsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListEntitySignalsMappingsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListEntitySignalsMappingsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListEntitySignalsMappingsResponse.verify|verify} messages.
                     * @param message ListEntitySignalsMappingsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListEntitySignalsMappingsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListEntitySignalsMappingsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListEntitySignalsMappingsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListEntitySignalsMappingsResponse;

                    /**
                     * Decodes a ListEntitySignalsMappingsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListEntitySignalsMappingsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListEntitySignalsMappingsResponse;

                    /**
                     * Verifies a ListEntitySignalsMappingsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListEntitySignalsMappingsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListEntitySignalsMappingsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListEntitySignalsMappingsResponse;

                    /**
                     * Creates a plain object from a ListEntitySignalsMappingsResponse message. Also converts values to other types if specified.
                     * @param message ListEntitySignalsMappingsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListEntitySignalsMappingsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListEntitySignalsMappingsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListEntitySignalsMappingsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchCreateEntitySignalsMappingsRequest. */
                interface IBatchCreateEntitySignalsMappingsRequest {

                    /** BatchCreateEntitySignalsMappingsRequest parent */
                    parent?: (string|null);

                    /** BatchCreateEntitySignalsMappingsRequest requests */
                    requests?: (google.ads.admanager.v1.ICreateEntitySignalsMappingRequest[]|null);
                }

                /** Represents a BatchCreateEntitySignalsMappingsRequest. */
                class BatchCreateEntitySignalsMappingsRequest implements IBatchCreateEntitySignalsMappingsRequest {

                    /**
                     * Constructs a new BatchCreateEntitySignalsMappingsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsRequest);

                    /** BatchCreateEntitySignalsMappingsRequest parent. */
                    public parent: string;

                    /** BatchCreateEntitySignalsMappingsRequest requests. */
                    public requests: google.ads.admanager.v1.ICreateEntitySignalsMappingRequest[];

                    /**
                     * Creates a new BatchCreateEntitySignalsMappingsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchCreateEntitySignalsMappingsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsRequest): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsRequest;

                    /**
                     * Encodes the specified BatchCreateEntitySignalsMappingsRequest message. Does not implicitly {@link google.ads.admanager.v1.BatchCreateEntitySignalsMappingsRequest.verify|verify} messages.
                     * @param message BatchCreateEntitySignalsMappingsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchCreateEntitySignalsMappingsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.BatchCreateEntitySignalsMappingsRequest.verify|verify} messages.
                     * @param message BatchCreateEntitySignalsMappingsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchCreateEntitySignalsMappingsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchCreateEntitySignalsMappingsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsRequest;

                    /**
                     * Decodes a BatchCreateEntitySignalsMappingsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchCreateEntitySignalsMappingsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsRequest;

                    /**
                     * Verifies a BatchCreateEntitySignalsMappingsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BatchCreateEntitySignalsMappingsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchCreateEntitySignalsMappingsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsRequest;

                    /**
                     * Creates a plain object from a BatchCreateEntitySignalsMappingsRequest message. Also converts values to other types if specified.
                     * @param message BatchCreateEntitySignalsMappingsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.BatchCreateEntitySignalsMappingsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchCreateEntitySignalsMappingsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchCreateEntitySignalsMappingsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchCreateEntitySignalsMappingsResponse. */
                interface IBatchCreateEntitySignalsMappingsResponse {

                    /** BatchCreateEntitySignalsMappingsResponse entitySignalsMappings */
                    entitySignalsMappings?: (google.ads.admanager.v1.IEntitySignalsMapping[]|null);
                }

                /** Represents a BatchCreateEntitySignalsMappingsResponse. */
                class BatchCreateEntitySignalsMappingsResponse implements IBatchCreateEntitySignalsMappingsResponse {

                    /**
                     * Constructs a new BatchCreateEntitySignalsMappingsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsResponse);

                    /** BatchCreateEntitySignalsMappingsResponse entitySignalsMappings. */
                    public entitySignalsMappings: google.ads.admanager.v1.IEntitySignalsMapping[];

                    /**
                     * Creates a new BatchCreateEntitySignalsMappingsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchCreateEntitySignalsMappingsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsResponse): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse;

                    /**
                     * Encodes the specified BatchCreateEntitySignalsMappingsResponse message. Does not implicitly {@link google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse.verify|verify} messages.
                     * @param message BatchCreateEntitySignalsMappingsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchCreateEntitySignalsMappingsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse.verify|verify} messages.
                     * @param message BatchCreateEntitySignalsMappingsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IBatchCreateEntitySignalsMappingsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchCreateEntitySignalsMappingsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchCreateEntitySignalsMappingsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse;

                    /**
                     * Decodes a BatchCreateEntitySignalsMappingsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchCreateEntitySignalsMappingsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse;

                    /**
                     * Verifies a BatchCreateEntitySignalsMappingsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BatchCreateEntitySignalsMappingsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchCreateEntitySignalsMappingsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse;

                    /**
                     * Creates a plain object from a BatchCreateEntitySignalsMappingsResponse message. Also converts values to other types if specified.
                     * @param message BatchCreateEntitySignalsMappingsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.BatchCreateEntitySignalsMappingsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchCreateEntitySignalsMappingsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchCreateEntitySignalsMappingsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntitySignalsMappingsRequest. */
                interface IBatchUpdateEntitySignalsMappingsRequest {

                    /** BatchUpdateEntitySignalsMappingsRequest parent */
                    parent?: (string|null);

                    /** BatchUpdateEntitySignalsMappingsRequest requests */
                    requests?: (google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest[]|null);
                }

                /** Represents a BatchUpdateEntitySignalsMappingsRequest. */
                class BatchUpdateEntitySignalsMappingsRequest implements IBatchUpdateEntitySignalsMappingsRequest {

                    /**
                     * Constructs a new BatchUpdateEntitySignalsMappingsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsRequest);

                    /** BatchUpdateEntitySignalsMappingsRequest parent. */
                    public parent: string;

                    /** BatchUpdateEntitySignalsMappingsRequest requests. */
                    public requests: google.ads.admanager.v1.IUpdateEntitySignalsMappingRequest[];

                    /**
                     * Creates a new BatchUpdateEntitySignalsMappingsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntitySignalsMappingsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsRequest): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsRequest;

                    /**
                     * Encodes the specified BatchUpdateEntitySignalsMappingsRequest message. Does not implicitly {@link google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsRequest.verify|verify} messages.
                     * @param message BatchUpdateEntitySignalsMappingsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntitySignalsMappingsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsRequest.verify|verify} messages.
                     * @param message BatchUpdateEntitySignalsMappingsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntitySignalsMappingsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntitySignalsMappingsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsRequest;

                    /**
                     * Decodes a BatchUpdateEntitySignalsMappingsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntitySignalsMappingsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsRequest;

                    /**
                     * Verifies a BatchUpdateEntitySignalsMappingsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BatchUpdateEntitySignalsMappingsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntitySignalsMappingsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsRequest;

                    /**
                     * Creates a plain object from a BatchUpdateEntitySignalsMappingsRequest message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntitySignalsMappingsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntitySignalsMappingsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntitySignalsMappingsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BatchUpdateEntitySignalsMappingsResponse. */
                interface IBatchUpdateEntitySignalsMappingsResponse {

                    /** BatchUpdateEntitySignalsMappingsResponse entitySignalsMappings */
                    entitySignalsMappings?: (google.ads.admanager.v1.IEntitySignalsMapping[]|null);
                }

                /** Represents a BatchUpdateEntitySignalsMappingsResponse. */
                class BatchUpdateEntitySignalsMappingsResponse implements IBatchUpdateEntitySignalsMappingsResponse {

                    /**
                     * Constructs a new BatchUpdateEntitySignalsMappingsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsResponse);

                    /** BatchUpdateEntitySignalsMappingsResponse entitySignalsMappings. */
                    public entitySignalsMappings: google.ads.admanager.v1.IEntitySignalsMapping[];

                    /**
                     * Creates a new BatchUpdateEntitySignalsMappingsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BatchUpdateEntitySignalsMappingsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsResponse): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse;

                    /**
                     * Encodes the specified BatchUpdateEntitySignalsMappingsResponse message. Does not implicitly {@link google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse.verify|verify} messages.
                     * @param message BatchUpdateEntitySignalsMappingsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BatchUpdateEntitySignalsMappingsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse.verify|verify} messages.
                     * @param message BatchUpdateEntitySignalsMappingsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IBatchUpdateEntitySignalsMappingsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BatchUpdateEntitySignalsMappingsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BatchUpdateEntitySignalsMappingsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse;

                    /**
                     * Decodes a BatchUpdateEntitySignalsMappingsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BatchUpdateEntitySignalsMappingsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse;

                    /**
                     * Verifies a BatchUpdateEntitySignalsMappingsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BatchUpdateEntitySignalsMappingsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BatchUpdateEntitySignalsMappingsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse;

                    /**
                     * Creates a plain object from a BatchUpdateEntitySignalsMappingsResponse message. Also converts values to other types if specified.
                     * @param message BatchUpdateEntitySignalsMappingsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.BatchUpdateEntitySignalsMappingsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BatchUpdateEntitySignalsMappingsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BatchUpdateEntitySignalsMappingsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Label. */
                interface ILabel {

                    /** Label name */
                    name?: (string|null);
                }

                /** Represents a Label. */
                class Label implements ILabel {

                    /**
                     * Constructs a new Label.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ILabel);

                    /** Label name. */
                    public name: string;

                    /**
                     * Creates a new Label instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Label instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ILabel): google.ads.admanager.v1.Label;

                    /**
                     * Encodes the specified Label message. Does not implicitly {@link google.ads.admanager.v1.Label.verify|verify} messages.
                     * @param message Label message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ILabel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Label message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Label.verify|verify} messages.
                     * @param message Label message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ILabel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Label message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Label
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Label;

                    /**
                     * Decodes a Label message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Label
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Label;

                    /**
                     * Verifies a Label message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Label message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Label
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Label;

                    /**
                     * Creates a plain object from a Label message. Also converts values to other types if specified.
                     * @param message Label
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Label, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Label to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Label
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Network. */
                interface INetwork {

                    /** Network name */
                    name?: (string|null);

                    /** Network displayName */
                    displayName?: (string|null);

                    /** Network networkCode */
                    networkCode?: (string|null);

                    /** Network propertyCode */
                    propertyCode?: (string|null);

                    /** Network timeZone */
                    timeZone?: (string|null);

                    /** Network currencyCode */
                    currencyCode?: (string|null);

                    /** Network secondaryCurrencyCodes */
                    secondaryCurrencyCodes?: (string[]|null);

                    /** Network effectiveRootAdUnit */
                    effectiveRootAdUnit?: (string|null);

                    /** Network testNetwork */
                    testNetwork?: (boolean|null);

                    /** Network networkId */
                    networkId?: (number|Long|string|null);
                }

                /** Represents a Network. */
                class Network implements INetwork {

                    /**
                     * Constructs a new Network.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.INetwork);

                    /** Network name. */
                    public name: string;

                    /** Network displayName. */
                    public displayName: string;

                    /** Network networkCode. */
                    public networkCode: string;

                    /** Network propertyCode. */
                    public propertyCode: string;

                    /** Network timeZone. */
                    public timeZone: string;

                    /** Network currencyCode. */
                    public currencyCode: string;

                    /** Network secondaryCurrencyCodes. */
                    public secondaryCurrencyCodes: string[];

                    /** Network effectiveRootAdUnit. */
                    public effectiveRootAdUnit: string;

                    /** Network testNetwork. */
                    public testNetwork: boolean;

                    /** Network networkId. */
                    public networkId: (number|Long|string);

                    /**
                     * Creates a new Network instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Network instance
                     */
                    public static create(properties?: google.ads.admanager.v1.INetwork): google.ads.admanager.v1.Network;

                    /**
                     * Encodes the specified Network message. Does not implicitly {@link google.ads.admanager.v1.Network.verify|verify} messages.
                     * @param message Network message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.INetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Network message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Network.verify|verify} messages.
                     * @param message Network message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.INetwork, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Network message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Network
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Network;

                    /**
                     * Decodes a Network message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Network
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Network;

                    /**
                     * Verifies a Network message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Network message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Network
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Network;

                    /**
                     * Creates a plain object from a Network message. Also converts values to other types if specified.
                     * @param message Network
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Network, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Network to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Network
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a NetworkService */
                class NetworkService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new NetworkService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new NetworkService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): NetworkService;

                    /**
                     * Calls GetNetwork.
                     * @param request GetNetworkRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Network
                     */
                    public getNetwork(request: google.ads.admanager.v1.IGetNetworkRequest, callback: google.ads.admanager.v1.NetworkService.GetNetworkCallback): void;

                    /**
                     * Calls GetNetwork.
                     * @param request GetNetworkRequest message or plain object
                     * @returns Promise
                     */
                    public getNetwork(request: google.ads.admanager.v1.IGetNetworkRequest): Promise<google.ads.admanager.v1.Network>;

                    /**
                     * Calls ListNetworks.
                     * @param request ListNetworksRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListNetworksResponse
                     */
                    public listNetworks(request: google.ads.admanager.v1.IListNetworksRequest, callback: google.ads.admanager.v1.NetworkService.ListNetworksCallback): void;

                    /**
                     * Calls ListNetworks.
                     * @param request ListNetworksRequest message or plain object
                     * @returns Promise
                     */
                    public listNetworks(request: google.ads.admanager.v1.IListNetworksRequest): Promise<google.ads.admanager.v1.ListNetworksResponse>;
                }

                namespace NetworkService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.NetworkService|getNetwork}.
                     * @param error Error, if any
                     * @param [response] Network
                     */
                    type GetNetworkCallback = (error: (Error|null), response?: google.ads.admanager.v1.Network) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.NetworkService|listNetworks}.
                     * @param error Error, if any
                     * @param [response] ListNetworksResponse
                     */
                    type ListNetworksCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListNetworksResponse) => void;
                }

                /** Properties of a GetNetworkRequest. */
                interface IGetNetworkRequest {

                    /** GetNetworkRequest name */
                    name?: (string|null);
                }

                /** Represents a GetNetworkRequest. */
                class GetNetworkRequest implements IGetNetworkRequest {

                    /**
                     * Constructs a new GetNetworkRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetNetworkRequest);

                    /** GetNetworkRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetNetworkRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetNetworkRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetNetworkRequest): google.ads.admanager.v1.GetNetworkRequest;

                    /**
                     * Encodes the specified GetNetworkRequest message. Does not implicitly {@link google.ads.admanager.v1.GetNetworkRequest.verify|verify} messages.
                     * @param message GetNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetNetworkRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetNetworkRequest.verify|verify} messages.
                     * @param message GetNetworkRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetNetworkRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetNetworkRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetNetworkRequest;

                    /**
                     * Decodes a GetNetworkRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetNetworkRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetNetworkRequest;

                    /**
                     * Verifies a GetNetworkRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetNetworkRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetNetworkRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetNetworkRequest;

                    /**
                     * Creates a plain object from a GetNetworkRequest message. Also converts values to other types if specified.
                     * @param message GetNetworkRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetNetworkRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetNetworkRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetNetworkRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworksRequest. */
                interface IListNetworksRequest {
                }

                /** Represents a ListNetworksRequest. */
                class ListNetworksRequest implements IListNetworksRequest {

                    /**
                     * Constructs a new ListNetworksRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListNetworksRequest);

                    /**
                     * Creates a new ListNetworksRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworksRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListNetworksRequest): google.ads.admanager.v1.ListNetworksRequest;

                    /**
                     * Encodes the specified ListNetworksRequest message. Does not implicitly {@link google.ads.admanager.v1.ListNetworksRequest.verify|verify} messages.
                     * @param message ListNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworksRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListNetworksRequest.verify|verify} messages.
                     * @param message ListNetworksRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListNetworksRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworksRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListNetworksRequest;

                    /**
                     * Decodes a ListNetworksRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworksRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListNetworksRequest;

                    /**
                     * Verifies a ListNetworksRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworksRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworksRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListNetworksRequest;

                    /**
                     * Creates a plain object from a ListNetworksRequest message. Also converts values to other types if specified.
                     * @param message ListNetworksRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListNetworksRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworksRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworksRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListNetworksResponse. */
                interface IListNetworksResponse {

                    /** ListNetworksResponse networks */
                    networks?: (google.ads.admanager.v1.INetwork[]|null);
                }

                /** Represents a ListNetworksResponse. */
                class ListNetworksResponse implements IListNetworksResponse {

                    /**
                     * Constructs a new ListNetworksResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListNetworksResponse);

                    /** ListNetworksResponse networks. */
                    public networks: google.ads.admanager.v1.INetwork[];

                    /**
                     * Creates a new ListNetworksResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListNetworksResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListNetworksResponse): google.ads.admanager.v1.ListNetworksResponse;

                    /**
                     * Encodes the specified ListNetworksResponse message. Does not implicitly {@link google.ads.admanager.v1.ListNetworksResponse.verify|verify} messages.
                     * @param message ListNetworksResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListNetworksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListNetworksResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListNetworksResponse.verify|verify} messages.
                     * @param message ListNetworksResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListNetworksResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListNetworksResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListNetworksResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListNetworksResponse;

                    /**
                     * Decodes a ListNetworksResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListNetworksResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListNetworksResponse;

                    /**
                     * Verifies a ListNetworksResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListNetworksResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListNetworksResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListNetworksResponse;

                    /**
                     * Creates a plain object from a ListNetworksResponse message. Also converts values to other types if specified.
                     * @param message ListNetworksResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListNetworksResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListNetworksResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListNetworksResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OrderStatusEnum. */
                interface IOrderStatusEnum {
                }

                /** Represents an OrderStatusEnum. */
                class OrderStatusEnum implements IOrderStatusEnum {

                    /**
                     * Constructs a new OrderStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IOrderStatusEnum);

                    /**
                     * Creates a new OrderStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OrderStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IOrderStatusEnum): google.ads.admanager.v1.OrderStatusEnum;

                    /**
                     * Encodes the specified OrderStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.OrderStatusEnum.verify|verify} messages.
                     * @param message OrderStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IOrderStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OrderStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.OrderStatusEnum.verify|verify} messages.
                     * @param message OrderStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IOrderStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OrderStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OrderStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.OrderStatusEnum;

                    /**
                     * Decodes an OrderStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OrderStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.OrderStatusEnum;

                    /**
                     * Verifies an OrderStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OrderStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OrderStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.OrderStatusEnum;

                    /**
                     * Creates a plain object from an OrderStatusEnum message. Also converts values to other types if specified.
                     * @param message OrderStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.OrderStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OrderStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OrderStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace OrderStatusEnum {

                    /** OrderStatus enum. */
                    enum OrderStatus {
                        ORDER_STATUS_UNSPECIFIED = 0,
                        DRAFT = 2,
                        PENDING_APPROVAL = 3,
                        APPROVED = 4,
                        DISAPPROVED = 5,
                        PAUSED = 6,
                        CANCELED = 7,
                        DELETED = 8
                    }
                }

                /** Properties of an Order. */
                interface IOrder {

                    /** Order name */
                    name?: (string|null);

                    /** Order orderId */
                    orderId?: (number|Long|string|null);

                    /** Order displayName */
                    displayName?: (string|null);

                    /** Order programmatic */
                    programmatic?: (boolean|null);

                    /** Order trafficker */
                    trafficker?: (string|null);

                    /** Order advertiserContacts */
                    advertiserContacts?: (string[]|null);

                    /** Order advertiser */
                    advertiser?: (string|null);

                    /** Order agencyContacts */
                    agencyContacts?: (string[]|null);

                    /** Order agency */
                    agency?: (string|null);

                    /** Order appliedTeams */
                    appliedTeams?: (string[]|null);

                    /** Order effectiveTeams */
                    effectiveTeams?: (string[]|null);

                    /** Order creator */
                    creator?: (string|null);

                    /** Order currencyCode */
                    currencyCode?: (string|null);

                    /** Order startTime */
                    startTime?: (google.protobuf.ITimestamp|null);

                    /** Order endTime */
                    endTime?: (google.protobuf.ITimestamp|null);

                    /** Order unlimitedEndTime */
                    unlimitedEndTime?: (boolean|null);

                    /** Order externalOrderId */
                    externalOrderId?: (number|Long|string|null);

                    /** Order archived */
                    archived?: (boolean|null);

                    /** Order lastModifiedByApp */
                    lastModifiedByApp?: (string|null);

                    /** Order updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Order notes */
                    notes?: (string|null);

                    /** Order poNumber */
                    poNumber?: (string|null);

                    /** Order status */
                    status?: (google.ads.admanager.v1.OrderStatusEnum.OrderStatus|keyof typeof google.ads.admanager.v1.OrderStatusEnum.OrderStatus|null);

                    /** Order salesperson */
                    salesperson?: (string|null);

                    /** Order secondarySalespeople */
                    secondarySalespeople?: (string[]|null);

                    /** Order secondaryTraffickers */
                    secondaryTraffickers?: (string[]|null);

                    /** Order appliedLabels */
                    appliedLabels?: (google.ads.admanager.v1.IAppliedLabel[]|null);

                    /** Order effectiveAppliedLabels */
                    effectiveAppliedLabels?: (google.ads.admanager.v1.IAppliedLabel[]|null);

                    /** Order customFieldValues */
                    customFieldValues?: (google.ads.admanager.v1.ICustomFieldValue[]|null);
                }

                /** Represents an Order. */
                class Order implements IOrder {

                    /**
                     * Constructs a new Order.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IOrder);

                    /** Order name. */
                    public name: string;

                    /** Order orderId. */
                    public orderId: (number|Long|string);

                    /** Order displayName. */
                    public displayName: string;

                    /** Order programmatic. */
                    public programmatic: boolean;

                    /** Order trafficker. */
                    public trafficker: string;

                    /** Order advertiserContacts. */
                    public advertiserContacts: string[];

                    /** Order advertiser. */
                    public advertiser: string;

                    /** Order agencyContacts. */
                    public agencyContacts: string[];

                    /** Order agency. */
                    public agency: string;

                    /** Order appliedTeams. */
                    public appliedTeams: string[];

                    /** Order effectiveTeams. */
                    public effectiveTeams: string[];

                    /** Order creator. */
                    public creator: string;

                    /** Order currencyCode. */
                    public currencyCode: string;

                    /** Order startTime. */
                    public startTime?: (google.protobuf.ITimestamp|null);

                    /** Order endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /** Order unlimitedEndTime. */
                    public unlimitedEndTime: boolean;

                    /** Order externalOrderId. */
                    public externalOrderId: (number|Long|string);

                    /** Order archived. */
                    public archived: boolean;

                    /** Order lastModifiedByApp. */
                    public lastModifiedByApp: string;

                    /** Order updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Order notes. */
                    public notes: string;

                    /** Order poNumber. */
                    public poNumber: string;

                    /** Order status. */
                    public status: (google.ads.admanager.v1.OrderStatusEnum.OrderStatus|keyof typeof google.ads.admanager.v1.OrderStatusEnum.OrderStatus);

                    /** Order salesperson. */
                    public salesperson: string;

                    /** Order secondarySalespeople. */
                    public secondarySalespeople: string[];

                    /** Order secondaryTraffickers. */
                    public secondaryTraffickers: string[];

                    /** Order appliedLabels. */
                    public appliedLabels: google.ads.admanager.v1.IAppliedLabel[];

                    /** Order effectiveAppliedLabels. */
                    public effectiveAppliedLabels: google.ads.admanager.v1.IAppliedLabel[];

                    /** Order customFieldValues. */
                    public customFieldValues: google.ads.admanager.v1.ICustomFieldValue[];

                    /**
                     * Creates a new Order instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Order instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IOrder): google.ads.admanager.v1.Order;

                    /**
                     * Encodes the specified Order message. Does not implicitly {@link google.ads.admanager.v1.Order.verify|verify} messages.
                     * @param message Order message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IOrder, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Order message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Order.verify|verify} messages.
                     * @param message Order message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IOrder, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Order message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Order
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Order;

                    /**
                     * Decodes an Order message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Order
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Order;

                    /**
                     * Verifies an Order message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an Order message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Order
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Order;

                    /**
                     * Creates a plain object from an Order message. Also converts values to other types if specified.
                     * @param message Order
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Order, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Order to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Order
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents an OrderService */
                class OrderService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new OrderService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new OrderService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): OrderService;

                    /**
                     * Calls GetOrder.
                     * @param request GetOrderRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Order
                     */
                    public getOrder(request: google.ads.admanager.v1.IGetOrderRequest, callback: google.ads.admanager.v1.OrderService.GetOrderCallback): void;

                    /**
                     * Calls GetOrder.
                     * @param request GetOrderRequest message or plain object
                     * @returns Promise
                     */
                    public getOrder(request: google.ads.admanager.v1.IGetOrderRequest): Promise<google.ads.admanager.v1.Order>;

                    /**
                     * Calls ListOrders.
                     * @param request ListOrdersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListOrdersResponse
                     */
                    public listOrders(request: google.ads.admanager.v1.IListOrdersRequest, callback: google.ads.admanager.v1.OrderService.ListOrdersCallback): void;

                    /**
                     * Calls ListOrders.
                     * @param request ListOrdersRequest message or plain object
                     * @returns Promise
                     */
                    public listOrders(request: google.ads.admanager.v1.IListOrdersRequest): Promise<google.ads.admanager.v1.ListOrdersResponse>;
                }

                namespace OrderService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.OrderService|getOrder}.
                     * @param error Error, if any
                     * @param [response] Order
                     */
                    type GetOrderCallback = (error: (Error|null), response?: google.ads.admanager.v1.Order) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.OrderService|listOrders}.
                     * @param error Error, if any
                     * @param [response] ListOrdersResponse
                     */
                    type ListOrdersCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListOrdersResponse) => void;
                }

                /** Properties of a GetOrderRequest. */
                interface IGetOrderRequest {

                    /** GetOrderRequest name */
                    name?: (string|null);
                }

                /** Represents a GetOrderRequest. */
                class GetOrderRequest implements IGetOrderRequest {

                    /**
                     * Constructs a new GetOrderRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetOrderRequest);

                    /** GetOrderRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetOrderRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetOrderRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetOrderRequest): google.ads.admanager.v1.GetOrderRequest;

                    /**
                     * Encodes the specified GetOrderRequest message. Does not implicitly {@link google.ads.admanager.v1.GetOrderRequest.verify|verify} messages.
                     * @param message GetOrderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetOrderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetOrderRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetOrderRequest.verify|verify} messages.
                     * @param message GetOrderRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetOrderRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetOrderRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetOrderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetOrderRequest;

                    /**
                     * Decodes a GetOrderRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetOrderRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetOrderRequest;

                    /**
                     * Verifies a GetOrderRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetOrderRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetOrderRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetOrderRequest;

                    /**
                     * Creates a plain object from a GetOrderRequest message. Also converts values to other types if specified.
                     * @param message GetOrderRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetOrderRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetOrderRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetOrderRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListOrdersRequest. */
                interface IListOrdersRequest {

                    /** ListOrdersRequest parent */
                    parent?: (string|null);

                    /** ListOrdersRequest pageSize */
                    pageSize?: (number|null);

                    /** ListOrdersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListOrdersRequest filter */
                    filter?: (string|null);

                    /** ListOrdersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListOrdersRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListOrdersRequest. */
                class ListOrdersRequest implements IListOrdersRequest {

                    /**
                     * Constructs a new ListOrdersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListOrdersRequest);

                    /** ListOrdersRequest parent. */
                    public parent: string;

                    /** ListOrdersRequest pageSize. */
                    public pageSize: number;

                    /** ListOrdersRequest pageToken. */
                    public pageToken: string;

                    /** ListOrdersRequest filter. */
                    public filter: string;

                    /** ListOrdersRequest orderBy. */
                    public orderBy: string;

                    /** ListOrdersRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListOrdersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListOrdersRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListOrdersRequest): google.ads.admanager.v1.ListOrdersRequest;

                    /**
                     * Encodes the specified ListOrdersRequest message. Does not implicitly {@link google.ads.admanager.v1.ListOrdersRequest.verify|verify} messages.
                     * @param message ListOrdersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListOrdersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListOrdersRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListOrdersRequest.verify|verify} messages.
                     * @param message ListOrdersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListOrdersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListOrdersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListOrdersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListOrdersRequest;

                    /**
                     * Decodes a ListOrdersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListOrdersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListOrdersRequest;

                    /**
                     * Verifies a ListOrdersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListOrdersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListOrdersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListOrdersRequest;

                    /**
                     * Creates a plain object from a ListOrdersRequest message. Also converts values to other types if specified.
                     * @param message ListOrdersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListOrdersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListOrdersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListOrdersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListOrdersResponse. */
                interface IListOrdersResponse {

                    /** ListOrdersResponse orders */
                    orders?: (google.ads.admanager.v1.IOrder[]|null);

                    /** ListOrdersResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListOrdersResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListOrdersResponse. */
                class ListOrdersResponse implements IListOrdersResponse {

                    /**
                     * Constructs a new ListOrdersResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListOrdersResponse);

                    /** ListOrdersResponse orders. */
                    public orders: google.ads.admanager.v1.IOrder[];

                    /** ListOrdersResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListOrdersResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListOrdersResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListOrdersResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListOrdersResponse): google.ads.admanager.v1.ListOrdersResponse;

                    /**
                     * Encodes the specified ListOrdersResponse message. Does not implicitly {@link google.ads.admanager.v1.ListOrdersResponse.verify|verify} messages.
                     * @param message ListOrdersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListOrdersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListOrdersResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListOrdersResponse.verify|verify} messages.
                     * @param message ListOrdersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListOrdersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListOrdersResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListOrdersResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListOrdersResponse;

                    /**
                     * Decodes a ListOrdersResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListOrdersResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListOrdersResponse;

                    /**
                     * Verifies a ListOrdersResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListOrdersResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListOrdersResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListOrdersResponse;

                    /**
                     * Creates a plain object from a ListOrdersResponse message. Also converts values to other types if specified.
                     * @param message ListOrdersResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListOrdersResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListOrdersResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListOrdersResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PlacementStatusEnum. */
                interface IPlacementStatusEnum {
                }

                /** Represents a PlacementStatusEnum. */
                class PlacementStatusEnum implements IPlacementStatusEnum {

                    /**
                     * Constructs a new PlacementStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IPlacementStatusEnum);

                    /**
                     * Creates a new PlacementStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PlacementStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IPlacementStatusEnum): google.ads.admanager.v1.PlacementStatusEnum;

                    /**
                     * Encodes the specified PlacementStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.PlacementStatusEnum.verify|verify} messages.
                     * @param message PlacementStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IPlacementStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PlacementStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.PlacementStatusEnum.verify|verify} messages.
                     * @param message PlacementStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IPlacementStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PlacementStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PlacementStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.PlacementStatusEnum;

                    /**
                     * Decodes a PlacementStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PlacementStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.PlacementStatusEnum;

                    /**
                     * Verifies a PlacementStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PlacementStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PlacementStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.PlacementStatusEnum;

                    /**
                     * Creates a plain object from a PlacementStatusEnum message. Also converts values to other types if specified.
                     * @param message PlacementStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.PlacementStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PlacementStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PlacementStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PlacementStatusEnum {

                    /** PlacementStatus enum. */
                    enum PlacementStatus {
                        PLACEMENT_STATUS_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        INACTIVE = 2,
                        ARCHIVED = 3
                    }
                }

                /** Properties of a Placement. */
                interface IPlacement {

                    /** Placement name */
                    name?: (string|null);

                    /** Placement placementId */
                    placementId?: (number|Long|string|null);

                    /** Placement displayName */
                    displayName?: (string|null);

                    /** Placement description */
                    description?: (string|null);

                    /** Placement placementCode */
                    placementCode?: (string|null);

                    /** Placement status */
                    status?: (google.ads.admanager.v1.PlacementStatusEnum.PlacementStatus|keyof typeof google.ads.admanager.v1.PlacementStatusEnum.PlacementStatus|null);

                    /** Placement targetedAdUnits */
                    targetedAdUnits?: (string[]|null);

                    /** Placement updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a Placement. */
                class Placement implements IPlacement {

                    /**
                     * Constructs a new Placement.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IPlacement);

                    /** Placement name. */
                    public name: string;

                    /** Placement placementId. */
                    public placementId: (number|Long|string);

                    /** Placement displayName. */
                    public displayName: string;

                    /** Placement description. */
                    public description: string;

                    /** Placement placementCode. */
                    public placementCode: string;

                    /** Placement status. */
                    public status: (google.ads.admanager.v1.PlacementStatusEnum.PlacementStatus|keyof typeof google.ads.admanager.v1.PlacementStatusEnum.PlacementStatus);

                    /** Placement targetedAdUnits. */
                    public targetedAdUnits: string[];

                    /** Placement updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new Placement instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Placement instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IPlacement): google.ads.admanager.v1.Placement;

                    /**
                     * Encodes the specified Placement message. Does not implicitly {@link google.ads.admanager.v1.Placement.verify|verify} messages.
                     * @param message Placement message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IPlacement, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Placement message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Placement.verify|verify} messages.
                     * @param message Placement message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IPlacement, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Placement message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Placement
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Placement;

                    /**
                     * Decodes a Placement message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Placement
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Placement;

                    /**
                     * Verifies a Placement message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Placement message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Placement
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Placement;

                    /**
                     * Creates a plain object from a Placement message. Also converts values to other types if specified.
                     * @param message Placement
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Placement, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Placement to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Placement
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a PlacementService */
                class PlacementService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new PlacementService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new PlacementService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): PlacementService;

                    /**
                     * Calls GetPlacement.
                     * @param request GetPlacementRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Placement
                     */
                    public getPlacement(request: google.ads.admanager.v1.IGetPlacementRequest, callback: google.ads.admanager.v1.PlacementService.GetPlacementCallback): void;

                    /**
                     * Calls GetPlacement.
                     * @param request GetPlacementRequest message or plain object
                     * @returns Promise
                     */
                    public getPlacement(request: google.ads.admanager.v1.IGetPlacementRequest): Promise<google.ads.admanager.v1.Placement>;

                    /**
                     * Calls ListPlacements.
                     * @param request ListPlacementsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListPlacementsResponse
                     */
                    public listPlacements(request: google.ads.admanager.v1.IListPlacementsRequest, callback: google.ads.admanager.v1.PlacementService.ListPlacementsCallback): void;

                    /**
                     * Calls ListPlacements.
                     * @param request ListPlacementsRequest message or plain object
                     * @returns Promise
                     */
                    public listPlacements(request: google.ads.admanager.v1.IListPlacementsRequest): Promise<google.ads.admanager.v1.ListPlacementsResponse>;
                }

                namespace PlacementService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.PlacementService|getPlacement}.
                     * @param error Error, if any
                     * @param [response] Placement
                     */
                    type GetPlacementCallback = (error: (Error|null), response?: google.ads.admanager.v1.Placement) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.PlacementService|listPlacements}.
                     * @param error Error, if any
                     * @param [response] ListPlacementsResponse
                     */
                    type ListPlacementsCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListPlacementsResponse) => void;
                }

                /** Properties of a GetPlacementRequest. */
                interface IGetPlacementRequest {

                    /** GetPlacementRequest name */
                    name?: (string|null);
                }

                /** Represents a GetPlacementRequest. */
                class GetPlacementRequest implements IGetPlacementRequest {

                    /**
                     * Constructs a new GetPlacementRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetPlacementRequest);

                    /** GetPlacementRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetPlacementRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetPlacementRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetPlacementRequest): google.ads.admanager.v1.GetPlacementRequest;

                    /**
                     * Encodes the specified GetPlacementRequest message. Does not implicitly {@link google.ads.admanager.v1.GetPlacementRequest.verify|verify} messages.
                     * @param message GetPlacementRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetPlacementRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetPlacementRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetPlacementRequest.verify|verify} messages.
                     * @param message GetPlacementRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetPlacementRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetPlacementRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetPlacementRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetPlacementRequest;

                    /**
                     * Decodes a GetPlacementRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetPlacementRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetPlacementRequest;

                    /**
                     * Verifies a GetPlacementRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetPlacementRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetPlacementRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetPlacementRequest;

                    /**
                     * Creates a plain object from a GetPlacementRequest message. Also converts values to other types if specified.
                     * @param message GetPlacementRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetPlacementRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetPlacementRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetPlacementRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPlacementsRequest. */
                interface IListPlacementsRequest {

                    /** ListPlacementsRequest parent */
                    parent?: (string|null);

                    /** ListPlacementsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListPlacementsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListPlacementsRequest filter */
                    filter?: (string|null);

                    /** ListPlacementsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListPlacementsRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListPlacementsRequest. */
                class ListPlacementsRequest implements IListPlacementsRequest {

                    /**
                     * Constructs a new ListPlacementsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListPlacementsRequest);

                    /** ListPlacementsRequest parent. */
                    public parent: string;

                    /** ListPlacementsRequest pageSize. */
                    public pageSize: number;

                    /** ListPlacementsRequest pageToken. */
                    public pageToken: string;

                    /** ListPlacementsRequest filter. */
                    public filter: string;

                    /** ListPlacementsRequest orderBy. */
                    public orderBy: string;

                    /** ListPlacementsRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListPlacementsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPlacementsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListPlacementsRequest): google.ads.admanager.v1.ListPlacementsRequest;

                    /**
                     * Encodes the specified ListPlacementsRequest message. Does not implicitly {@link google.ads.admanager.v1.ListPlacementsRequest.verify|verify} messages.
                     * @param message ListPlacementsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListPlacementsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPlacementsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListPlacementsRequest.verify|verify} messages.
                     * @param message ListPlacementsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListPlacementsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPlacementsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPlacementsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListPlacementsRequest;

                    /**
                     * Decodes a ListPlacementsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPlacementsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListPlacementsRequest;

                    /**
                     * Verifies a ListPlacementsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPlacementsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPlacementsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListPlacementsRequest;

                    /**
                     * Creates a plain object from a ListPlacementsRequest message. Also converts values to other types if specified.
                     * @param message ListPlacementsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListPlacementsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPlacementsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPlacementsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListPlacementsResponse. */
                interface IListPlacementsResponse {

                    /** ListPlacementsResponse placements */
                    placements?: (google.ads.admanager.v1.IPlacement[]|null);

                    /** ListPlacementsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListPlacementsResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListPlacementsResponse. */
                class ListPlacementsResponse implements IListPlacementsResponse {

                    /**
                     * Constructs a new ListPlacementsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListPlacementsResponse);

                    /** ListPlacementsResponse placements. */
                    public placements: google.ads.admanager.v1.IPlacement[];

                    /** ListPlacementsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListPlacementsResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListPlacementsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListPlacementsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListPlacementsResponse): google.ads.admanager.v1.ListPlacementsResponse;

                    /**
                     * Encodes the specified ListPlacementsResponse message. Does not implicitly {@link google.ads.admanager.v1.ListPlacementsResponse.verify|verify} messages.
                     * @param message ListPlacementsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListPlacementsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListPlacementsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListPlacementsResponse.verify|verify} messages.
                     * @param message ListPlacementsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListPlacementsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListPlacementsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListPlacementsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListPlacementsResponse;

                    /**
                     * Decodes a ListPlacementsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListPlacementsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListPlacementsResponse;

                    /**
                     * Verifies a ListPlacementsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListPlacementsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListPlacementsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListPlacementsResponse;

                    /**
                     * Creates a plain object from a ListPlacementsResponse message. Also converts values to other types if specified.
                     * @param message ListPlacementsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListPlacementsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListPlacementsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListPlacementsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a ReportService */
                class ReportService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new ReportService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new ReportService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): ReportService;

                    /**
                     * Calls GetReport.
                     * @param request GetReportRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Report
                     */
                    public getReport(request: google.ads.admanager.v1.IGetReportRequest, callback: google.ads.admanager.v1.ReportService.GetReportCallback): void;

                    /**
                     * Calls GetReport.
                     * @param request GetReportRequest message or plain object
                     * @returns Promise
                     */
                    public getReport(request: google.ads.admanager.v1.IGetReportRequest): Promise<google.ads.admanager.v1.Report>;

                    /**
                     * Calls ListReports.
                     * @param request ListReportsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListReportsResponse
                     */
                    public listReports(request: google.ads.admanager.v1.IListReportsRequest, callback: google.ads.admanager.v1.ReportService.ListReportsCallback): void;

                    /**
                     * Calls ListReports.
                     * @param request ListReportsRequest message or plain object
                     * @returns Promise
                     */
                    public listReports(request: google.ads.admanager.v1.IListReportsRequest): Promise<google.ads.admanager.v1.ListReportsResponse>;

                    /**
                     * Calls CreateReport.
                     * @param request CreateReportRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Report
                     */
                    public createReport(request: google.ads.admanager.v1.ICreateReportRequest, callback: google.ads.admanager.v1.ReportService.CreateReportCallback): void;

                    /**
                     * Calls CreateReport.
                     * @param request CreateReportRequest message or plain object
                     * @returns Promise
                     */
                    public createReport(request: google.ads.admanager.v1.ICreateReportRequest): Promise<google.ads.admanager.v1.Report>;

                    /**
                     * Calls UpdateReport.
                     * @param request UpdateReportRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Report
                     */
                    public updateReport(request: google.ads.admanager.v1.IUpdateReportRequest, callback: google.ads.admanager.v1.ReportService.UpdateReportCallback): void;

                    /**
                     * Calls UpdateReport.
                     * @param request UpdateReportRequest message or plain object
                     * @returns Promise
                     */
                    public updateReport(request: google.ads.admanager.v1.IUpdateReportRequest): Promise<google.ads.admanager.v1.Report>;

                    /**
                     * Calls RunReport.
                     * @param request RunReportRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Operation
                     */
                    public runReport(request: google.ads.admanager.v1.IRunReportRequest, callback: google.ads.admanager.v1.ReportService.RunReportCallback): void;

                    /**
                     * Calls RunReport.
                     * @param request RunReportRequest message or plain object
                     * @returns Promise
                     */
                    public runReport(request: google.ads.admanager.v1.IRunReportRequest): Promise<google.longrunning.Operation>;

                    /**
                     * Calls FetchReportResultRows.
                     * @param request FetchReportResultRowsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FetchReportResultRowsResponse
                     */
                    public fetchReportResultRows(request: google.ads.admanager.v1.IFetchReportResultRowsRequest, callback: google.ads.admanager.v1.ReportService.FetchReportResultRowsCallback): void;

                    /**
                     * Calls FetchReportResultRows.
                     * @param request FetchReportResultRowsRequest message or plain object
                     * @returns Promise
                     */
                    public fetchReportResultRows(request: google.ads.admanager.v1.IFetchReportResultRowsRequest): Promise<google.ads.admanager.v1.FetchReportResultRowsResponse>;
                }

                namespace ReportService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.ReportService|getReport}.
                     * @param error Error, if any
                     * @param [response] Report
                     */
                    type GetReportCallback = (error: (Error|null), response?: google.ads.admanager.v1.Report) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.ReportService|listReports}.
                     * @param error Error, if any
                     * @param [response] ListReportsResponse
                     */
                    type ListReportsCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListReportsResponse) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.ReportService|createReport}.
                     * @param error Error, if any
                     * @param [response] Report
                     */
                    type CreateReportCallback = (error: (Error|null), response?: google.ads.admanager.v1.Report) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.ReportService|updateReport}.
                     * @param error Error, if any
                     * @param [response] Report
                     */
                    type UpdateReportCallback = (error: (Error|null), response?: google.ads.admanager.v1.Report) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.ReportService|runReport}.
                     * @param error Error, if any
                     * @param [response] Operation
                     */
                    type RunReportCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.ReportService|fetchReportResultRows}.
                     * @param error Error, if any
                     * @param [response] FetchReportResultRowsResponse
                     */
                    type FetchReportResultRowsCallback = (error: (Error|null), response?: google.ads.admanager.v1.FetchReportResultRowsResponse) => void;
                }

                /** Properties of a Report. */
                interface IReport {

                    /** Report name */
                    name?: (string|null);

                    /** Report reportId */
                    reportId?: (number|Long|string|null);

                    /** Report visibility */
                    visibility?: (google.ads.admanager.v1.Report.Visibility|keyof typeof google.ads.admanager.v1.Report.Visibility|null);

                    /** Report reportDefinition */
                    reportDefinition?: (google.ads.admanager.v1.IReportDefinition|null);

                    /** Report displayName */
                    displayName?: (string|null);

                    /** Report updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Report createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Report locale */
                    locale?: (string|null);

                    /** Report scheduleOptions */
                    scheduleOptions?: (google.ads.admanager.v1.IScheduleOptions|null);
                }

                /** Represents a Report. */
                class Report implements IReport {

                    /**
                     * Constructs a new Report.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IReport);

                    /** Report name. */
                    public name: string;

                    /** Report reportId. */
                    public reportId: (number|Long|string);

                    /** Report visibility. */
                    public visibility: (google.ads.admanager.v1.Report.Visibility|keyof typeof google.ads.admanager.v1.Report.Visibility);

                    /** Report reportDefinition. */
                    public reportDefinition?: (google.ads.admanager.v1.IReportDefinition|null);

                    /** Report displayName. */
                    public displayName: string;

                    /** Report updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Report createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Report locale. */
                    public locale: string;

                    /** Report scheduleOptions. */
                    public scheduleOptions?: (google.ads.admanager.v1.IScheduleOptions|null);

                    /**
                     * Creates a new Report instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Report instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IReport): google.ads.admanager.v1.Report;

                    /**
                     * Encodes the specified Report message. Does not implicitly {@link google.ads.admanager.v1.Report.verify|verify} messages.
                     * @param message Report message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IReport, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Report message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.verify|verify} messages.
                     * @param message Report message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IReport, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Report message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Report
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report;

                    /**
                     * Decodes a Report message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Report
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report;

                    /**
                     * Verifies a Report message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Report message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Report
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report;

                    /**
                     * Creates a plain object from a Report message. Also converts values to other types if specified.
                     * @param message Report
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Report, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Report to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Report
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Report {

                    /** Properties of a Value. */
                    interface IValue {

                        /** Value intValue */
                        intValue?: (number|Long|string|null);

                        /** Value doubleValue */
                        doubleValue?: (number|null);

                        /** Value stringValue */
                        stringValue?: (string|null);

                        /** Value boolValue */
                        boolValue?: (boolean|null);

                        /** Value intListValue */
                        intListValue?: (google.ads.admanager.v1.Report.Value.IIntList|null);

                        /** Value stringListValue */
                        stringListValue?: (google.ads.admanager.v1.Report.Value.IStringList|null);

                        /** Value bytesValue */
                        bytesValue?: (Uint8Array|string|null);
                    }

                    /** Represents a Value. */
                    class Value implements IValue {

                        /**
                         * Constructs a new Value.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.IValue);

                        /** Value intValue. */
                        public intValue?: (number|Long|string|null);

                        /** Value doubleValue. */
                        public doubleValue?: (number|null);

                        /** Value stringValue. */
                        public stringValue?: (string|null);

                        /** Value boolValue. */
                        public boolValue?: (boolean|null);

                        /** Value intListValue. */
                        public intListValue?: (google.ads.admanager.v1.Report.Value.IIntList|null);

                        /** Value stringListValue. */
                        public stringListValue?: (google.ads.admanager.v1.Report.Value.IStringList|null);

                        /** Value bytesValue. */
                        public bytesValue?: (Uint8Array|string|null);

                        /** Value value. */
                        public value?: ("intValue"|"doubleValue"|"stringValue"|"boolValue"|"intListValue"|"stringListValue"|"bytesValue");

                        /**
                         * Creates a new Value instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Value instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.IValue): google.ads.admanager.v1.Report.Value;

                        /**
                         * Encodes the specified Value message. Does not implicitly {@link google.ads.admanager.v1.Report.Value.verify|verify} messages.
                         * @param message Value message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Value message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Value.verify|verify} messages.
                         * @param message Value message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Value message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Value
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Value;

                        /**
                         * Decodes a Value message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Value
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Value;

                        /**
                         * Verifies a Value message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Value message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Value
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Value;

                        /**
                         * Creates a plain object from a Value message. Also converts values to other types if specified.
                         * @param message Value
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Value to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Value
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Value {

                        /** Properties of an IntList. */
                        interface IIntList {

                            /** IntList values */
                            values?: ((number|Long|string)[]|null);
                        }

                        /** Represents an IntList. */
                        class IntList implements IIntList {

                            /**
                             * Constructs a new IntList.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.ads.admanager.v1.Report.Value.IIntList);

                            /** IntList values. */
                            public values: (number|Long|string)[];

                            /**
                             * Creates a new IntList instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns IntList instance
                             */
                            public static create(properties?: google.ads.admanager.v1.Report.Value.IIntList): google.ads.admanager.v1.Report.Value.IntList;

                            /**
                             * Encodes the specified IntList message. Does not implicitly {@link google.ads.admanager.v1.Report.Value.IntList.verify|verify} messages.
                             * @param message IntList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.ads.admanager.v1.Report.Value.IIntList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified IntList message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Value.IntList.verify|verify} messages.
                             * @param message IntList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.ads.admanager.v1.Report.Value.IIntList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an IntList message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns IntList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Value.IntList;

                            /**
                             * Decodes an IntList message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns IntList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Value.IntList;

                            /**
                             * Verifies an IntList message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates an IntList message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns IntList
                             */
                            public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Value.IntList;

                            /**
                             * Creates a plain object from an IntList message. Also converts values to other types if specified.
                             * @param message IntList
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.ads.admanager.v1.Report.Value.IntList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this IntList to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for IntList
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a StringList. */
                        interface IStringList {

                            /** StringList values */
                            values?: (string[]|null);
                        }

                        /** Represents a StringList. */
                        class StringList implements IStringList {

                            /**
                             * Constructs a new StringList.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.ads.admanager.v1.Report.Value.IStringList);

                            /** StringList values. */
                            public values: string[];

                            /**
                             * Creates a new StringList instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns StringList instance
                             */
                            public static create(properties?: google.ads.admanager.v1.Report.Value.IStringList): google.ads.admanager.v1.Report.Value.StringList;

                            /**
                             * Encodes the specified StringList message. Does not implicitly {@link google.ads.admanager.v1.Report.Value.StringList.verify|verify} messages.
                             * @param message StringList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.ads.admanager.v1.Report.Value.IStringList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified StringList message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Value.StringList.verify|verify} messages.
                             * @param message StringList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.ads.admanager.v1.Report.Value.IStringList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a StringList message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns StringList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Value.StringList;

                            /**
                             * Decodes a StringList message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns StringList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Value.StringList;

                            /**
                             * Verifies a StringList message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a StringList message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns StringList
                             */
                            public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Value.StringList;

                            /**
                             * Creates a plain object from a StringList message. Also converts values to other types if specified.
                             * @param message StringList
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.ads.admanager.v1.Report.Value.StringList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this StringList to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for StringList
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a Sort. */
                    interface ISort {

                        /** Sort field */
                        field?: (google.ads.admanager.v1.Report.IField|null);

                        /** Sort descending */
                        descending?: (boolean|null);

                        /** Sort slice */
                        slice?: (google.ads.admanager.v1.Report.ISlice|null);

                        /** Sort timePeriodIndex */
                        timePeriodIndex?: (number|null);

                        /** Sort metricValueType */
                        metricValueType?: (google.ads.admanager.v1.Report.MetricValueType|keyof typeof google.ads.admanager.v1.Report.MetricValueType|null);
                    }

                    /** Represents a Sort. */
                    class Sort implements ISort {

                        /**
                         * Constructs a new Sort.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.ISort);

                        /** Sort field. */
                        public field?: (google.ads.admanager.v1.Report.IField|null);

                        /** Sort descending. */
                        public descending: boolean;

                        /** Sort slice. */
                        public slice?: (google.ads.admanager.v1.Report.ISlice|null);

                        /** Sort timePeriodIndex. */
                        public timePeriodIndex?: (number|null);

                        /** Sort metricValueType. */
                        public metricValueType?: (google.ads.admanager.v1.Report.MetricValueType|keyof typeof google.ads.admanager.v1.Report.MetricValueType|null);

                        /** Sort _slice. */
                        public _slice?: "slice";

                        /** Sort _timePeriodIndex. */
                        public _timePeriodIndex?: "timePeriodIndex";

                        /** Sort _metricValueType. */
                        public _metricValueType?: "metricValueType";

                        /**
                         * Creates a new Sort instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Sort instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.ISort): google.ads.admanager.v1.Report.Sort;

                        /**
                         * Encodes the specified Sort message. Does not implicitly {@link google.ads.admanager.v1.Report.Sort.verify|verify} messages.
                         * @param message Sort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.ISort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Sort message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Sort.verify|verify} messages.
                         * @param message Sort message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.ISort, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Sort message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Sort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Sort;

                        /**
                         * Decodes a Sort message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Sort
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Sort;

                        /**
                         * Verifies a Sort message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Sort message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Sort
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Sort;

                        /**
                         * Creates a plain object from a Sort message. Also converts values to other types if specified.
                         * @param message Sort
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.Sort, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Sort to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Sort
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DataTable. */
                    interface IDataTable {
                    }

                    /** Represents a DataTable. */
                    class DataTable implements IDataTable {

                        /**
                         * Constructs a new DataTable.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.IDataTable);

                        /**
                         * Creates a new DataTable instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DataTable instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.IDataTable): google.ads.admanager.v1.Report.DataTable;

                        /**
                         * Encodes the specified DataTable message. Does not implicitly {@link google.ads.admanager.v1.Report.DataTable.verify|verify} messages.
                         * @param message DataTable message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.IDataTable, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DataTable message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.DataTable.verify|verify} messages.
                         * @param message DataTable message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.IDataTable, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DataTable message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DataTable
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.DataTable;

                        /**
                         * Decodes a DataTable message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DataTable
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.DataTable;

                        /**
                         * Verifies a DataTable message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DataTable message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DataTable
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.DataTable;

                        /**
                         * Creates a plain object from a DataTable message. Also converts values to other types if specified.
                         * @param message DataTable
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.DataTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DataTable to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DataTable
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace DataTable {

                        /** Properties of a Row. */
                        interface IRow {

                            /** Row dimensionValues */
                            dimensionValues?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** Row metricValueGroups */
                            metricValueGroups?: (google.ads.admanager.v1.Report.DataTable.IMetricValueGroup[]|null);
                        }

                        /** Represents a Row. */
                        class Row implements IRow {

                            /**
                             * Constructs a new Row.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.ads.admanager.v1.Report.DataTable.IRow);

                            /** Row dimensionValues. */
                            public dimensionValues: google.ads.admanager.v1.Report.IValue[];

                            /** Row metricValueGroups. */
                            public metricValueGroups: google.ads.admanager.v1.Report.DataTable.IMetricValueGroup[];

                            /**
                             * Creates a new Row instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Row instance
                             */
                            public static create(properties?: google.ads.admanager.v1.Report.DataTable.IRow): google.ads.admanager.v1.Report.DataTable.Row;

                            /**
                             * Encodes the specified Row message. Does not implicitly {@link google.ads.admanager.v1.Report.DataTable.Row.verify|verify} messages.
                             * @param message Row message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.ads.admanager.v1.Report.DataTable.IRow, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Row message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.DataTable.Row.verify|verify} messages.
                             * @param message Row message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.ads.admanager.v1.Report.DataTable.IRow, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Row message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Row
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.DataTable.Row;

                            /**
                             * Decodes a Row message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Row
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.DataTable.Row;

                            /**
                             * Verifies a Row message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a Row message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Row
                             */
                            public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.DataTable.Row;

                            /**
                             * Creates a plain object from a Row message. Also converts values to other types if specified.
                             * @param message Row
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.ads.admanager.v1.Report.DataTable.Row, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Row to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Row
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a MetricValueGroup. */
                        interface IMetricValueGroup {

                            /** MetricValueGroup primaryValues */
                            primaryValues?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** MetricValueGroup primaryPercentOfTotalValues */
                            primaryPercentOfTotalValues?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** MetricValueGroup comparisonValues */
                            comparisonValues?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** MetricValueGroup comparisonPercentOfTotalValues */
                            comparisonPercentOfTotalValues?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** MetricValueGroup absoluteChangeValues */
                            absoluteChangeValues?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** MetricValueGroup relativeChangeValues */
                            relativeChangeValues?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** MetricValueGroup flagValues */
                            flagValues?: (boolean[]|null);
                        }

                        /** Represents a MetricValueGroup. */
                        class MetricValueGroup implements IMetricValueGroup {

                            /**
                             * Constructs a new MetricValueGroup.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.ads.admanager.v1.Report.DataTable.IMetricValueGroup);

                            /** MetricValueGroup primaryValues. */
                            public primaryValues: google.ads.admanager.v1.Report.IValue[];

                            /** MetricValueGroup primaryPercentOfTotalValues. */
                            public primaryPercentOfTotalValues: google.ads.admanager.v1.Report.IValue[];

                            /** MetricValueGroup comparisonValues. */
                            public comparisonValues: google.ads.admanager.v1.Report.IValue[];

                            /** MetricValueGroup comparisonPercentOfTotalValues. */
                            public comparisonPercentOfTotalValues: google.ads.admanager.v1.Report.IValue[];

                            /** MetricValueGroup absoluteChangeValues. */
                            public absoluteChangeValues: google.ads.admanager.v1.Report.IValue[];

                            /** MetricValueGroup relativeChangeValues. */
                            public relativeChangeValues: google.ads.admanager.v1.Report.IValue[];

                            /** MetricValueGroup flagValues. */
                            public flagValues: boolean[];

                            /**
                             * Creates a new MetricValueGroup instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns MetricValueGroup instance
                             */
                            public static create(properties?: google.ads.admanager.v1.Report.DataTable.IMetricValueGroup): google.ads.admanager.v1.Report.DataTable.MetricValueGroup;

                            /**
                             * Encodes the specified MetricValueGroup message. Does not implicitly {@link google.ads.admanager.v1.Report.DataTable.MetricValueGroup.verify|verify} messages.
                             * @param message MetricValueGroup message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.ads.admanager.v1.Report.DataTable.IMetricValueGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified MetricValueGroup message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.DataTable.MetricValueGroup.verify|verify} messages.
                             * @param message MetricValueGroup message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.ads.admanager.v1.Report.DataTable.IMetricValueGroup, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a MetricValueGroup message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns MetricValueGroup
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.DataTable.MetricValueGroup;

                            /**
                             * Decodes a MetricValueGroup message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns MetricValueGroup
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.DataTable.MetricValueGroup;

                            /**
                             * Verifies a MetricValueGroup message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a MetricValueGroup message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns MetricValueGroup
                             */
                            public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.DataTable.MetricValueGroup;

                            /**
                             * Creates a plain object from a MetricValueGroup message. Also converts values to other types if specified.
                             * @param message MetricValueGroup
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.ads.admanager.v1.Report.DataTable.MetricValueGroup, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this MetricValueGroup to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for MetricValueGroup
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a Field. */
                    interface IField {

                        /** Field dimension */
                        dimension?: (google.ads.admanager.v1.Report.Dimension|keyof typeof google.ads.admanager.v1.Report.Dimension|null);

                        /** Field metric */
                        metric?: (google.ads.admanager.v1.Report.Metric|keyof typeof google.ads.admanager.v1.Report.Metric|null);
                    }

                    /** Represents a Field. */
                    class Field implements IField {

                        /**
                         * Constructs a new Field.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.IField);

                        /** Field dimension. */
                        public dimension?: (google.ads.admanager.v1.Report.Dimension|keyof typeof google.ads.admanager.v1.Report.Dimension|null);

                        /** Field metric. */
                        public metric?: (google.ads.admanager.v1.Report.Metric|keyof typeof google.ads.admanager.v1.Report.Metric|null);

                        /** Field field. */
                        public field?: ("dimension"|"metric");

                        /**
                         * Creates a new Field instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Field instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.IField): google.ads.admanager.v1.Report.Field;

                        /**
                         * Encodes the specified Field message. Does not implicitly {@link google.ads.admanager.v1.Report.Field.verify|verify} messages.
                         * @param message Field message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.IField, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Field message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Field.verify|verify} messages.
                         * @param message Field message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.IField, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Field message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Field
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Field;

                        /**
                         * Decodes a Field message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Field
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Field;

                        /**
                         * Verifies a Field message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Field message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Field
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Field;

                        /**
                         * Creates a plain object from a Field message. Also converts values to other types if specified.
                         * @param message Field
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.Field, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Field to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Field
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Slice. */
                    interface ISlice {

                        /** Slice dimension */
                        dimension?: (google.ads.admanager.v1.Report.Dimension|keyof typeof google.ads.admanager.v1.Report.Dimension|null);

                        /** Slice value */
                        value?: (google.ads.admanager.v1.Report.IValue|null);
                    }

                    /** Represents a Slice. */
                    class Slice implements ISlice {

                        /**
                         * Constructs a new Slice.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.ISlice);

                        /** Slice dimension. */
                        public dimension: (google.ads.admanager.v1.Report.Dimension|keyof typeof google.ads.admanager.v1.Report.Dimension);

                        /** Slice value. */
                        public value?: (google.ads.admanager.v1.Report.IValue|null);

                        /**
                         * Creates a new Slice instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Slice instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.ISlice): google.ads.admanager.v1.Report.Slice;

                        /**
                         * Encodes the specified Slice message. Does not implicitly {@link google.ads.admanager.v1.Report.Slice.verify|verify} messages.
                         * @param message Slice message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.ISlice, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Slice message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Slice.verify|verify} messages.
                         * @param message Slice message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.ISlice, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Slice message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Slice
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Slice;

                        /**
                         * Decodes a Slice message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Slice
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Slice;

                        /**
                         * Verifies a Slice message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Slice message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Slice
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Slice;

                        /**
                         * Creates a plain object from a Slice message. Also converts values to other types if specified.
                         * @param message Slice
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.Slice, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Slice to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Slice
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Filter. */
                    interface IFilter {

                        /** Filter fieldFilter */
                        fieldFilter?: (google.ads.admanager.v1.Report.Filter.IFieldFilter|null);

                        /** Filter notFilter */
                        notFilter?: (google.ads.admanager.v1.Report.IFilter|null);

                        /** Filter andFilter */
                        andFilter?: (google.ads.admanager.v1.Report.Filter.IFilterList|null);

                        /** Filter orFilter */
                        orFilter?: (google.ads.admanager.v1.Report.Filter.IFilterList|null);
                    }

                    /** Represents a Filter. */
                    class Filter implements IFilter {

                        /**
                         * Constructs a new Filter.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.IFilter);

                        /** Filter fieldFilter. */
                        public fieldFilter?: (google.ads.admanager.v1.Report.Filter.IFieldFilter|null);

                        /** Filter notFilter. */
                        public notFilter?: (google.ads.admanager.v1.Report.IFilter|null);

                        /** Filter andFilter. */
                        public andFilter?: (google.ads.admanager.v1.Report.Filter.IFilterList|null);

                        /** Filter orFilter. */
                        public orFilter?: (google.ads.admanager.v1.Report.Filter.IFilterList|null);

                        /** Filter type. */
                        public type?: ("fieldFilter"|"notFilter"|"andFilter"|"orFilter");

                        /**
                         * Creates a new Filter instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Filter instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.IFilter): google.ads.admanager.v1.Report.Filter;

                        /**
                         * Encodes the specified Filter message. Does not implicitly {@link google.ads.admanager.v1.Report.Filter.verify|verify} messages.
                         * @param message Filter message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.IFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Filter message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Filter.verify|verify} messages.
                         * @param message Filter message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.IFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Filter message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Filter
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Filter;

                        /**
                         * Decodes a Filter message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Filter
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Filter;

                        /**
                         * Verifies a Filter message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Filter message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Filter
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Filter;

                        /**
                         * Creates a plain object from a Filter message. Also converts values to other types if specified.
                         * @param message Filter
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.Filter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Filter to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Filter
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Filter {

                        /** Properties of a FieldFilter. */
                        interface IFieldFilter {

                            /** FieldFilter field */
                            field?: (google.ads.admanager.v1.Report.IField|null);

                            /** FieldFilter operation */
                            operation?: (google.ads.admanager.v1.Report.Filter.Operation|keyof typeof google.ads.admanager.v1.Report.Filter.Operation|null);

                            /** FieldFilter values */
                            values?: (google.ads.admanager.v1.Report.IValue[]|null);

                            /** FieldFilter slice */
                            slice?: (google.ads.admanager.v1.Report.ISlice|null);

                            /** FieldFilter timePeriodIndex */
                            timePeriodIndex?: (number|null);

                            /** FieldFilter metricValueType */
                            metricValueType?: (google.ads.admanager.v1.Report.MetricValueType|keyof typeof google.ads.admanager.v1.Report.MetricValueType|null);
                        }

                        /** Represents a FieldFilter. */
                        class FieldFilter implements IFieldFilter {

                            /**
                             * Constructs a new FieldFilter.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.ads.admanager.v1.Report.Filter.IFieldFilter);

                            /** FieldFilter field. */
                            public field?: (google.ads.admanager.v1.Report.IField|null);

                            /** FieldFilter operation. */
                            public operation: (google.ads.admanager.v1.Report.Filter.Operation|keyof typeof google.ads.admanager.v1.Report.Filter.Operation);

                            /** FieldFilter values. */
                            public values: google.ads.admanager.v1.Report.IValue[];

                            /** FieldFilter slice. */
                            public slice?: (google.ads.admanager.v1.Report.ISlice|null);

                            /** FieldFilter timePeriodIndex. */
                            public timePeriodIndex?: (number|null);

                            /** FieldFilter metricValueType. */
                            public metricValueType?: (google.ads.admanager.v1.Report.MetricValueType|keyof typeof google.ads.admanager.v1.Report.MetricValueType|null);

                            /** FieldFilter _slice. */
                            public _slice?: "slice";

                            /** FieldFilter _timePeriodIndex. */
                            public _timePeriodIndex?: "timePeriodIndex";

                            /** FieldFilter _metricValueType. */
                            public _metricValueType?: "metricValueType";

                            /**
                             * Creates a new FieldFilter instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns FieldFilter instance
                             */
                            public static create(properties?: google.ads.admanager.v1.Report.Filter.IFieldFilter): google.ads.admanager.v1.Report.Filter.FieldFilter;

                            /**
                             * Encodes the specified FieldFilter message. Does not implicitly {@link google.ads.admanager.v1.Report.Filter.FieldFilter.verify|verify} messages.
                             * @param message FieldFilter message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.ads.admanager.v1.Report.Filter.IFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified FieldFilter message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Filter.FieldFilter.verify|verify} messages.
                             * @param message FieldFilter message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.ads.admanager.v1.Report.Filter.IFieldFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a FieldFilter message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns FieldFilter
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Filter.FieldFilter;

                            /**
                             * Decodes a FieldFilter message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns FieldFilter
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Filter.FieldFilter;

                            /**
                             * Verifies a FieldFilter message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a FieldFilter message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns FieldFilter
                             */
                            public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Filter.FieldFilter;

                            /**
                             * Creates a plain object from a FieldFilter message. Also converts values to other types if specified.
                             * @param message FieldFilter
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.ads.admanager.v1.Report.Filter.FieldFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this FieldFilter to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for FieldFilter
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a FilterList. */
                        interface IFilterList {

                            /** FilterList filters */
                            filters?: (google.ads.admanager.v1.Report.IFilter[]|null);
                        }

                        /** Represents a FilterList. */
                        class FilterList implements IFilterList {

                            /**
                             * Constructs a new FilterList.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.ads.admanager.v1.Report.Filter.IFilterList);

                            /** FilterList filters. */
                            public filters: google.ads.admanager.v1.Report.IFilter[];

                            /**
                             * Creates a new FilterList instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns FilterList instance
                             */
                            public static create(properties?: google.ads.admanager.v1.Report.Filter.IFilterList): google.ads.admanager.v1.Report.Filter.FilterList;

                            /**
                             * Encodes the specified FilterList message. Does not implicitly {@link google.ads.admanager.v1.Report.Filter.FilterList.verify|verify} messages.
                             * @param message FilterList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.ads.admanager.v1.Report.Filter.IFilterList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified FilterList message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Filter.FilterList.verify|verify} messages.
                             * @param message FilterList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.ads.admanager.v1.Report.Filter.IFilterList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a FilterList message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns FilterList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Filter.FilterList;

                            /**
                             * Decodes a FilterList message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns FilterList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Filter.FilterList;

                            /**
                             * Verifies a FilterList message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a FilterList message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns FilterList
                             */
                            public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Filter.FilterList;

                            /**
                             * Creates a plain object from a FilterList message. Also converts values to other types if specified.
                             * @param message FilterList
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.ads.admanager.v1.Report.Filter.FilterList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this FilterList to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for FilterList
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Operation enum. */
                        enum Operation {
                            IN = 0,
                            NOT_IN = 1,
                            CONTAINS = 2,
                            NOT_CONTAINS = 3,
                            LESS_THAN = 4,
                            LESS_THAN_EQUALS = 5,
                            GREATER_THAN = 6,
                            GREATER_THAN_EQUALS = 7,
                            BETWEEN = 8,
                            MATCHES = 9,
                            NOT_MATCHES = 10
                        }
                    }

                    /** Properties of a Flag. */
                    interface IFlag {

                        /** Flag filters */
                        filters?: (google.ads.admanager.v1.Report.IFilter[]|null);

                        /** Flag name */
                        name?: (string|null);
                    }

                    /** Represents a Flag. */
                    class Flag implements IFlag {

                        /**
                         * Constructs a new Flag.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.IFlag);

                        /** Flag filters. */
                        public filters: google.ads.admanager.v1.Report.IFilter[];

                        /** Flag name. */
                        public name: string;

                        /**
                         * Creates a new Flag instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Flag instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.IFlag): google.ads.admanager.v1.Report.Flag;

                        /**
                         * Encodes the specified Flag message. Does not implicitly {@link google.ads.admanager.v1.Report.Flag.verify|verify} messages.
                         * @param message Flag message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.IFlag, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Flag message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.Flag.verify|verify} messages.
                         * @param message Flag message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.IFlag, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Flag message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Flag
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.Flag;

                        /**
                         * Decodes a Flag message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Flag
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.Flag;

                        /**
                         * Verifies a Flag message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Flag message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Flag
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.Flag;

                        /**
                         * Creates a plain object from a Flag message. Also converts values to other types if specified.
                         * @param message Flag
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.Flag, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Flag to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Flag
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DateRange. */
                    interface IDateRange {

                        /** DateRange fixed */
                        fixed?: (google.ads.admanager.v1.Report.DateRange.IFixedDateRange|null);

                        /** DateRange relative */
                        relative?: (google.ads.admanager.v1.Report.DateRange.RelativeDateRange|keyof typeof google.ads.admanager.v1.Report.DateRange.RelativeDateRange|null);
                    }

                    /** Represents a DateRange. */
                    class DateRange implements IDateRange {

                        /**
                         * Constructs a new DateRange.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Report.IDateRange);

                        /** DateRange fixed. */
                        public fixed?: (google.ads.admanager.v1.Report.DateRange.IFixedDateRange|null);

                        /** DateRange relative. */
                        public relative?: (google.ads.admanager.v1.Report.DateRange.RelativeDateRange|keyof typeof google.ads.admanager.v1.Report.DateRange.RelativeDateRange|null);

                        /** DateRange dateRangeType. */
                        public dateRangeType?: ("fixed"|"relative");

                        /**
                         * Creates a new DateRange instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DateRange instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Report.IDateRange): google.ads.admanager.v1.Report.DateRange;

                        /**
                         * Encodes the specified DateRange message. Does not implicitly {@link google.ads.admanager.v1.Report.DateRange.verify|verify} messages.
                         * @param message DateRange message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Report.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DateRange message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.DateRange.verify|verify} messages.
                         * @param message DateRange message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Report.IDateRange, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DateRange message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DateRange
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.DateRange;

                        /**
                         * Decodes a DateRange message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DateRange
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.DateRange;

                        /**
                         * Verifies a DateRange message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DateRange message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DateRange
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.DateRange;

                        /**
                         * Creates a plain object from a DateRange message. Also converts values to other types if specified.
                         * @param message DateRange
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Report.DateRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DateRange to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DateRange
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace DateRange {

                        /** Properties of a FixedDateRange. */
                        interface IFixedDateRange {

                            /** FixedDateRange startDate */
                            startDate?: (google.type.IDate|null);

                            /** FixedDateRange endDate */
                            endDate?: (google.type.IDate|null);
                        }

                        /** Represents a FixedDateRange. */
                        class FixedDateRange implements IFixedDateRange {

                            /**
                             * Constructs a new FixedDateRange.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.ads.admanager.v1.Report.DateRange.IFixedDateRange);

                            /** FixedDateRange startDate. */
                            public startDate?: (google.type.IDate|null);

                            /** FixedDateRange endDate. */
                            public endDate?: (google.type.IDate|null);

                            /**
                             * Creates a new FixedDateRange instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns FixedDateRange instance
                             */
                            public static create(properties?: google.ads.admanager.v1.Report.DateRange.IFixedDateRange): google.ads.admanager.v1.Report.DateRange.FixedDateRange;

                            /**
                             * Encodes the specified FixedDateRange message. Does not implicitly {@link google.ads.admanager.v1.Report.DateRange.FixedDateRange.verify|verify} messages.
                             * @param message FixedDateRange message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.ads.admanager.v1.Report.DateRange.IFixedDateRange, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified FixedDateRange message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Report.DateRange.FixedDateRange.verify|verify} messages.
                             * @param message FixedDateRange message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.ads.admanager.v1.Report.DateRange.IFixedDateRange, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a FixedDateRange message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns FixedDateRange
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Report.DateRange.FixedDateRange;

                            /**
                             * Decodes a FixedDateRange message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns FixedDateRange
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Report.DateRange.FixedDateRange;

                            /**
                             * Verifies a FixedDateRange message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a FixedDateRange message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns FixedDateRange
                             */
                            public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Report.DateRange.FixedDateRange;

                            /**
                             * Creates a plain object from a FixedDateRange message. Also converts values to other types if specified.
                             * @param message FixedDateRange
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.ads.admanager.v1.Report.DateRange.FixedDateRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this FixedDateRange to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for FixedDateRange
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** RelativeDateRange enum. */
                        enum RelativeDateRange {
                            RELATIVE_DATE_RANGE_UNSPECIFIED = 0,
                            TODAY = 1,
                            YESTERDAY = 2,
                            THIS_WEEK = 3,
                            THIS_WEEK_TO_DATE = 29,
                            THIS_MONTH = 4,
                            THIS_MONTH_TO_DATE = 26,
                            THIS_QUARTER = 5,
                            THIS_QUARTER_TO_DATE = 27,
                            THIS_YEAR = 6,
                            THIS_YEAR_TO_DATE = 28,
                            LAST_WEEK = 7,
                            LAST_MONTH = 8,
                            LAST_QUARTER = 9,
                            LAST_YEAR = 10,
                            LAST_7_DAYS = 11,
                            LAST_30_DAYS = 12,
                            LAST_60_DAYS = 13,
                            LAST_90_DAYS = 14,
                            LAST_180_DAYS = 15,
                            LAST_360_DAYS = 16,
                            LAST_365_DAYS = 17,
                            LAST_3_MONTHS = 18,
                            LAST_6_MONTHS = 19,
                            LAST_12_MONTHS = 20,
                            ALL_AVAILABLE = 21,
                            PREVIOUS_PERIOD = 22,
                            SAME_PERIOD_PREVIOUS_YEAR = 24
                        }
                    }

                    /** TimePeriodColumn enum. */
                    enum TimePeriodColumn {
                        TIME_PERIOD_COLUMN_UNSPECIFIED = 0,
                        TIME_PERIOD_COLUMN_DATE = 1,
                        TIME_PERIOD_COLUMN_WEEK = 2,
                        TIME_PERIOD_COLUMN_MONTH = 3,
                        TIME_PERIOD_COLUMN_QUARTER = 4
                    }

                    /** Dimension enum. */
                    enum Dimension {
                        DIMENSION_UNSPECIFIED = 0,
                        ADVERTISER_DOMAIN_NAME = 242,
                        ADVERTISER_EXTERNAL_ID = 228,
                        ADVERTISER_ID = 131,
                        ADVERTISER_LABELS = 230,
                        ADVERTISER_LABEL_IDS = 229,
                        ADVERTISER_NAME = 132,
                        ADVERTISER_PRIMARY_CONTACT = 227,
                        AD_LOCATION = 390,
                        AD_LOCATION_NAME = 391,
                        AD_UNIT_CODE = 64,
                        AD_UNIT_CODE_LEVEL_1 = 65,
                        AD_UNIT_CODE_LEVEL_10 = 74,
                        AD_UNIT_CODE_LEVEL_11 = 75,
                        AD_UNIT_CODE_LEVEL_12 = 76,
                        AD_UNIT_CODE_LEVEL_13 = 77,
                        AD_UNIT_CODE_LEVEL_14 = 78,
                        AD_UNIT_CODE_LEVEL_15 = 79,
                        AD_UNIT_CODE_LEVEL_16 = 80,
                        AD_UNIT_CODE_LEVEL_2 = 66,
                        AD_UNIT_CODE_LEVEL_3 = 67,
                        AD_UNIT_CODE_LEVEL_4 = 68,
                        AD_UNIT_CODE_LEVEL_5 = 69,
                        AD_UNIT_CODE_LEVEL_6 = 70,
                        AD_UNIT_CODE_LEVEL_7 = 71,
                        AD_UNIT_CODE_LEVEL_8 = 72,
                        AD_UNIT_CODE_LEVEL_9 = 73,
                        AD_UNIT_DEPTH = 101,
                        AD_UNIT_ID = 25,
                        AD_UNIT_ID_ALL_LEVEL = 27,
                        AD_UNIT_ID_LEVEL_1 = 30,
                        AD_UNIT_ID_LEVEL_10 = 48,
                        AD_UNIT_ID_LEVEL_11 = 50,
                        AD_UNIT_ID_LEVEL_12 = 52,
                        AD_UNIT_ID_LEVEL_13 = 54,
                        AD_UNIT_ID_LEVEL_14 = 56,
                        AD_UNIT_ID_LEVEL_15 = 58,
                        AD_UNIT_ID_LEVEL_16 = 60,
                        AD_UNIT_ID_LEVEL_2 = 32,
                        AD_UNIT_ID_LEVEL_3 = 34,
                        AD_UNIT_ID_LEVEL_4 = 36,
                        AD_UNIT_ID_LEVEL_5 = 38,
                        AD_UNIT_ID_LEVEL_6 = 40,
                        AD_UNIT_ID_LEVEL_7 = 42,
                        AD_UNIT_ID_LEVEL_8 = 44,
                        AD_UNIT_ID_LEVEL_9 = 46,
                        AD_UNIT_ID_TOP_LEVEL = 142,
                        AD_UNIT_NAME = 26,
                        AD_UNIT_NAME_ALL_LEVEL = 29,
                        AD_UNIT_NAME_LEVEL_1 = 31,
                        AD_UNIT_NAME_LEVEL_10 = 49,
                        AD_UNIT_NAME_LEVEL_11 = 51,
                        AD_UNIT_NAME_LEVEL_12 = 53,
                        AD_UNIT_NAME_LEVEL_13 = 55,
                        AD_UNIT_NAME_LEVEL_14 = 57,
                        AD_UNIT_NAME_LEVEL_15 = 59,
                        AD_UNIT_NAME_LEVEL_16 = 61,
                        AD_UNIT_NAME_LEVEL_2 = 33,
                        AD_UNIT_NAME_LEVEL_3 = 35,
                        AD_UNIT_NAME_LEVEL_4 = 37,
                        AD_UNIT_NAME_LEVEL_5 = 39,
                        AD_UNIT_NAME_LEVEL_6 = 41,
                        AD_UNIT_NAME_LEVEL_7 = 43,
                        AD_UNIT_NAME_LEVEL_8 = 45,
                        AD_UNIT_NAME_LEVEL_9 = 47,
                        AD_UNIT_NAME_TOP_LEVEL = 143,
                        AD_UNIT_REWARD_AMOUNT = 63,
                        AD_UNIT_REWARD_TYPE = 62,
                        AD_UNIT_STATUS = 206,
                        AD_UNIT_STATUS_NAME = 207,
                        APP_VERSION = 392,
                        BACKFILL_ADVERTISER_EXTERNAL_ID = 349,
                        BACKFILL_ADVERTISER_ID = 346,
                        BACKFILL_ADVERTISER_LABELS = 351,
                        BACKFILL_ADVERTISER_LABEL_IDS = 350,
                        BACKFILL_ADVERTISER_NAME = 347,
                        BACKFILL_ADVERTISER_PRIMARY_CONTACT = 348,
                        BACKFILL_CREATIVE_BILLING_TYPE = 378,
                        BACKFILL_CREATIVE_BILLING_TYPE_NAME = 379,
                        BACKFILL_CREATIVE_CLICK_THROUGH_URL = 376,
                        BACKFILL_CREATIVE_ID = 370,
                        BACKFILL_CREATIVE_NAME = 371,
                        BACKFILL_CREATIVE_THIRD_PARTY_VENDOR = 377,
                        BACKFILL_CREATIVE_TYPE = 374,
                        BACKFILL_CREATIVE_TYPE_NAME = 375,
                        BACKFILL_LINE_ITEM_ARCHIVED = 278,
                        BACKFILL_LINE_ITEM_COMPANION_DELIVERY_OPTION = 258,
                        BACKFILL_LINE_ITEM_COMPANION_DELIVERY_OPTION_NAME = 259,
                        BACKFILL_LINE_ITEM_COMPUTED_STATUS = 296,
                        BACKFILL_LINE_ITEM_COMPUTED_STATUS_NAME = 297,
                        BACKFILL_LINE_ITEM_CONTRACTED_QUANTITY = 280,
                        BACKFILL_LINE_ITEM_COST_PER_UNIT = 272,
                        BACKFILL_LINE_ITEM_COST_TYPE = 264,
                        BACKFILL_LINE_ITEM_COST_TYPE_NAME = 265,
                        BACKFILL_LINE_ITEM_CREATIVE_END_DATE = 381,
                        BACKFILL_LINE_ITEM_CREATIVE_ROTATION_TYPE = 290,
                        BACKFILL_LINE_ITEM_CREATIVE_ROTATION_TYPE_NAME = 291,
                        BACKFILL_LINE_ITEM_CREATIVE_START_DATE = 380,
                        BACKFILL_LINE_ITEM_CURRENCY_CODE = 288,
                        BACKFILL_LINE_ITEM_DELIVERY_INDICATOR = 274,
                        BACKFILL_LINE_ITEM_DELIVERY_RATE_TYPE = 292,
                        BACKFILL_LINE_ITEM_DELIVERY_RATE_TYPE_NAME = 293,
                        BACKFILL_LINE_ITEM_DISCOUNT_ABSOLUTE = 294,
                        BACKFILL_LINE_ITEM_DISCOUNT_PERCENTAGE = 295,
                        BACKFILL_LINE_ITEM_END_DATE = 267,
                        BACKFILL_LINE_ITEM_END_DATE_TIME = 269,
                        BACKFILL_LINE_ITEM_ENVIRONMENT_TYPE = 302,
                        BACKFILL_LINE_ITEM_ENVIRONMENT_TYPE_NAME = 257,
                        BACKFILL_LINE_ITEM_EXTERNAL_DEAL_ID = 285,
                        BACKFILL_LINE_ITEM_EXTERNAL_ID = 273,
                        BACKFILL_LINE_ITEM_FREQUENCY_CAP = 303,
                        BACKFILL_LINE_ITEM_ID = 298,
                        BACKFILL_LINE_ITEM_LAST_MODIFIED_BY_APP = 289,
                        BACKFILL_LINE_ITEM_LIFETIME_CLICKS = 283,
                        BACKFILL_LINE_ITEM_LIFETIME_IMPRESSIONS = 282,
                        BACKFILL_LINE_ITEM_LIFETIME_VIEWABLE_IMPRESSIONS = 284,
                        BACKFILL_LINE_ITEM_MAKEGOOD = 276,
                        BACKFILL_LINE_ITEM_NAME = 299,
                        BACKFILL_LINE_ITEM_NON_CPD_BOOKED_REVENUE = 286,
                        BACKFILL_LINE_ITEM_OPTIMIZABLE = 277,
                        BACKFILL_LINE_ITEM_PRIMARY_GOAL_TYPE = 262,
                        BACKFILL_LINE_ITEM_PRIMARY_GOAL_TYPE_NAME = 263,
                        BACKFILL_LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE = 260,
                        BACKFILL_LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE_NAME = 261,
                        BACKFILL_LINE_ITEM_PRIORITY = 266,
                        BACKFILL_LINE_ITEM_RESERVATION_STATUS = 306,
                        BACKFILL_LINE_ITEM_RESERVATION_STATUS_NAME = 307,
                        BACKFILL_LINE_ITEM_START_DATE = 268,
                        BACKFILL_LINE_ITEM_START_DATE_TIME = 270,
                        BACKFILL_LINE_ITEM_TYPE = 300,
                        BACKFILL_LINE_ITEM_TYPE_NAME = 301,
                        BACKFILL_LINE_ITEM_UNLIMITED_END = 271,
                        BACKFILL_LINE_ITEM_VALUE_COST_PER_UNIT = 275,
                        BACKFILL_LINE_ITEM_WEB_PROPERTY_CODE = 287,
                        BACKFILL_MASTER_COMPANION_CREATIVE_ID = 372,
                        BACKFILL_MASTER_COMPANION_CREATIVE_NAME = 373,
                        BACKFILL_ORDER_AGENCY = 313,
                        BACKFILL_ORDER_AGENCY_ID = 314,
                        BACKFILL_ORDER_BOOKED_CPC = 315,
                        BACKFILL_ORDER_BOOKED_CPM = 316,
                        BACKFILL_ORDER_DELIVERY_STATUS = 340,
                        BACKFILL_ORDER_DELIVERY_STATUS_NAME = 341,
                        BACKFILL_ORDER_END_DATE = 317,
                        BACKFILL_ORDER_END_DATE_TIME = 319,
                        BACKFILL_ORDER_EXTERNAL_ID = 320,
                        BACKFILL_ORDER_ID = 338,
                        BACKFILL_ORDER_LABELS = 334,
                        BACKFILL_ORDER_LABEL_IDS = 335,
                        BACKFILL_ORDER_LIFETIME_CLICKS = 322,
                        BACKFILL_ORDER_LIFETIME_IMPRESSIONS = 323,
                        BACKFILL_ORDER_NAME = 339,
                        BACKFILL_ORDER_PO_NUMBER = 324,
                        BACKFILL_ORDER_PROGRAMMATIC = 321,
                        BACKFILL_ORDER_SALESPERSON = 325,
                        BACKFILL_ORDER_SECONDARY_SALESPEOPLE = 329,
                        BACKFILL_ORDER_SECONDARY_SALESPEOPLE_ID = 328,
                        BACKFILL_ORDER_SECONDARY_TRAFFICKERS = 331,
                        BACKFILL_ORDER_SECONDARY_TRAFFICKERS_ID = 330,
                        BACKFILL_ORDER_START_DATE = 332,
                        BACKFILL_ORDER_START_DATE_TIME = 333,
                        BACKFILL_ORDER_TRAFFICKER = 326,
                        BACKFILL_ORDER_TRAFFICKER_ID = 327,
                        BACKFILL_ORDER_UNLIMITED_END = 318,
                        BACKFILL_PROGRAMMATIC_BUYER_ID = 336,
                        BACKFILL_PROGRAMMATIC_BUYER_NAME = 337,
                        BRANDING_TYPE = 383,
                        BRANDING_TYPE_NAME = 384,
                        BROWSER_CATEGORY = 119,
                        BROWSER_CATEGORY_NAME = 120,
                        BROWSER_ID = 235,
                        BROWSER_NAME = 236,
                        CARRIER_ID = 369,
                        CARRIER_NAME = 368,
                        CLASSIFIED_ADVERTISER_ID = 133,
                        CLASSIFIED_ADVERTISER_NAME = 134,
                        CLASSIFIED_BRAND_ID = 243,
                        CLASSIFIED_BRAND_NAME = 244,
                        CONTENT_ID = 246,
                        CONTENT_NAME = 247,
                        COUNTRY_ID = 11,
                        COUNTRY_NAME = 12,
                        CREATIVE_BILLING_TYPE = 366,
                        CREATIVE_BILLING_TYPE_NAME = 367,
                        CREATIVE_CLICK_THROUGH_URL = 174,
                        CREATIVE_ID = 138,
                        CREATIVE_NAME = 139,
                        CREATIVE_TECHNOLOGY = 148,
                        CREATIVE_TECHNOLOGY_NAME = 149,
                        CREATIVE_THIRD_PARTY_VENDOR = 361,
                        CREATIVE_TYPE = 344,
                        CREATIVE_TYPE_NAME = 345,
                        DATE = 3,
                        DAY_OF_WEEK = 4,
                        DEMAND_CHANNEL = 9,
                        DEMAND_CHANNEL_NAME = 10,
                        DEMAND_SUBCHANNEL = 22,
                        DEMAND_SUBCHANNEL_NAME = 23,
                        DEVICE = 226,
                        DEVICE_CATEGORY = 15,
                        DEVICE_CATEGORY_NAME = 16,
                        DEVICE_NAME = 225,
                        EXCHANGE_THIRD_PARTY_COMPANY_ID = 185,
                        EXCHANGE_THIRD_PARTY_COMPANY_NAME = 186,
                        FIRST_LOOK_PRICING_RULE_ID = 248,
                        FIRST_LOOK_PRICING_RULE_NAME = 249,
                        HOUR = 100,
                        INTERACTION_TYPE = 223,
                        INTERACTION_TYPE_NAME = 224,
                        INVENTORY_FORMAT = 17,
                        INVENTORY_FORMAT_NAME = 18,
                        INVENTORY_TYPE = 19,
                        INVENTORY_TYPE_NAME = 20,
                        IS_ADX_DIRECT = 382,
                        IS_FIRST_LOOK_DEAL = 401,
                        KEY_VALUES_ID = 214,
                        KEY_VALUES_NAME = 215,
                        LINE_ITEM_ARCHIVED = 188,
                        LINE_ITEM_COMPANION_DELIVERY_OPTION = 204,
                        LINE_ITEM_COMPANION_DELIVERY_OPTION_NAME = 205,
                        LINE_ITEM_COMPUTED_STATUS = 250,
                        LINE_ITEM_COMPUTED_STATUS_NAME = 251,
                        LINE_ITEM_CONTRACTED_QUANTITY = 92,
                        LINE_ITEM_COST_PER_UNIT = 85,
                        LINE_ITEM_COST_TYPE = 212,
                        LINE_ITEM_COST_TYPE_NAME = 213,
                        LINE_ITEM_CREATIVE_END_DATE = 176,
                        LINE_ITEM_CREATIVE_ROTATION_TYPE = 189,
                        LINE_ITEM_CREATIVE_ROTATION_TYPE_NAME = 190,
                        LINE_ITEM_CREATIVE_START_DATE = 175,
                        LINE_ITEM_CURRENCY_CODE = 180,
                        LINE_ITEM_DELIVERY_INDICATOR = 87,
                        LINE_ITEM_DELIVERY_RATE_TYPE = 191,
                        LINE_ITEM_DELIVERY_RATE_TYPE_NAME = 192,
                        LINE_ITEM_DISCOUNT_ABSOLUTE = 195,
                        LINE_ITEM_DISCOUNT_PERCENTAGE = 196,
                        LINE_ITEM_END_DATE = 81,
                        LINE_ITEM_END_DATE_TIME = 83,
                        LINE_ITEM_ENVIRONMENT_TYPE = 201,
                        LINE_ITEM_ENVIRONMENT_TYPE_NAME = 202,
                        LINE_ITEM_EXTERNAL_DEAL_ID = 97,
                        LINE_ITEM_EXTERNAL_ID = 86,
                        LINE_ITEM_FREQUENCY_CAP = 256,
                        LINE_ITEM_ID = 1,
                        LINE_ITEM_LAST_MODIFIED_BY_APP = 181,
                        LINE_ITEM_LIFETIME_CLICKS = 95,
                        LINE_ITEM_LIFETIME_IMPRESSIONS = 94,
                        LINE_ITEM_LIFETIME_VIEWABLE_IMPRESSIONS = 96,
                        LINE_ITEM_MAKEGOOD = 89,
                        LINE_ITEM_NAME = 2,
                        LINE_ITEM_NON_CPD_BOOKED_REVENUE = 98,
                        LINE_ITEM_OPTIMIZABLE = 90,
                        LINE_ITEM_PRIMARY_GOAL_TYPE = 210,
                        LINE_ITEM_PRIMARY_GOAL_TYPE_NAME = 211,
                        LINE_ITEM_PRIMARY_GOAL_UNITS_ABSOLUTE = 93,
                        LINE_ITEM_PRIMARY_GOAL_UNITS_PERCENTAGE = 396,
                        LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE = 208,
                        LINE_ITEM_PRIMARY_GOAL_UNIT_TYPE_NAME = 209,
                        LINE_ITEM_PRIORITY = 24,
                        LINE_ITEM_RESERVATION_STATUS = 304,
                        LINE_ITEM_RESERVATION_STATUS_NAME = 305,
                        LINE_ITEM_START_DATE = 82,
                        LINE_ITEM_START_DATE_TIME = 84,
                        LINE_ITEM_TYPE = 193,
                        LINE_ITEM_TYPE_NAME = 194,
                        LINE_ITEM_UNLIMITED_END = 187,
                        LINE_ITEM_VALUE_COST_PER_UNIT = 88,
                        LINE_ITEM_WEB_PROPERTY_CODE = 179,
                        MASTER_COMPANION_CREATIVE_ID = 140,
                        MASTER_COMPANION_CREATIVE_NAME = 141,
                        MOBILE_APP_FREE = 128,
                        MOBILE_APP_ICON_URL = 129,
                        MOBILE_APP_ID = 123,
                        MOBILE_APP_NAME = 127,
                        MOBILE_APP_OWNERSHIP_STATUS = 311,
                        MOBILE_APP_OWNERSHIP_STATUS_NAME = 312,
                        MOBILE_APP_STORE = 125,
                        MOBILE_APP_STORE_NAME = 245,
                        MOBILE_INVENTORY_TYPE = 99,
                        MOBILE_INVENTORY_TYPE_NAME = 21,
                        MOBILE_SDK_VERSION_NAME = 130,
                        MONTH_YEAR = 6,
                        NATIVE_AD_FORMAT_ID = 255,
                        NATIVE_AD_FORMAT_NAME = 254,
                        NATIVE_STYLE_ID = 253,
                        NATIVE_STYLE_NAME = 252,
                        OPERATING_SYSTEM_CATEGORY = 117,
                        OPERATING_SYSTEM_CATEGORY_NAME = 118,
                        OPERATING_SYSTEM_VERSION_ID = 238,
                        OPERATING_SYSTEM_VERSION_NAME = 237,
                        ORDER_AGENCY = 150,
                        ORDER_AGENCY_ID = 151,
                        ORDER_BOOKED_CPC = 152,
                        ORDER_BOOKED_CPM = 153,
                        ORDER_DELIVERY_STATUS = 231,
                        ORDER_DELIVERY_STATUS_NAME = 239,
                        ORDER_END_DATE = 154,
                        ORDER_END_DATE_TIME = 155,
                        ORDER_EXTERNAL_ID = 156,
                        ORDER_ID = 7,
                        ORDER_LABELS = 170,
                        ORDER_LABEL_IDS = 171,
                        ORDER_LIFETIME_CLICKS = 158,
                        ORDER_LIFETIME_IMPRESSIONS = 159,
                        ORDER_NAME = 8,
                        ORDER_PO_NUMBER = 160,
                        ORDER_PROGRAMMATIC = 157,
                        ORDER_SALESPERSON = 161,
                        ORDER_SECONDARY_SALESPEOPLE = 164,
                        ORDER_SECONDARY_SALESPEOPLE_ID = 165,
                        ORDER_SECONDARY_TRAFFICKERS = 166,
                        ORDER_SECONDARY_TRAFFICKERS_ID = 167,
                        ORDER_START_DATE = 168,
                        ORDER_START_DATE_TIME = 169,
                        ORDER_TRAFFICKER = 162,
                        ORDER_TRAFFICKER_ID = 163,
                        ORDER_UNLIMITED_END = 203,
                        PLACEMENT_ID = 113,
                        PLACEMENT_ID_ALL = 144,
                        PLACEMENT_NAME = 114,
                        PLACEMENT_NAME_ALL = 145,
                        PLACEMENT_STATUS = 362,
                        PLACEMENT_STATUS_ALL = 363,
                        PLACEMENT_STATUS_NAME = 364,
                        PLACEMENT_STATUS_NAME_ALL = 365,
                        PROGRAMMATIC_BUYER_ID = 240,
                        PROGRAMMATIC_BUYER_NAME = 241,
                        PROGRAMMATIC_CHANNEL = 13,
                        PROGRAMMATIC_CHANNEL_NAME = 14,
                        RENDERED_CREATIVE_SIZE = 343,
                        REQUESTED_AD_SIZES = 352,
                        REQUEST_TYPE = 146,
                        REQUEST_TYPE_NAME = 147,
                        SITE = 387,
                        TARGETING_ID = 232,
                        TARGETING_NAME = 233,
                        TARGETING_TYPE = 385,
                        TARGETING_TYPE_NAME = 386,
                        TRAFFIC_SOURCE = 388,
                        TRAFFIC_SOURCE_NAME = 389,
                        UNIFIED_PRICING_RULE_ID = 393,
                        UNIFIED_PRICING_RULE_NAME = 394,
                        VIDEO_PLCMT = 172,
                        VIDEO_PLCMT_NAME = 173,
                        WEEK = 5,
                        YIELD_GROUP_BUYER_NAME = 184,
                        YIELD_GROUP_ID = 182,
                        YIELD_GROUP_NAME = 183,
                        LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID = 10000,
                        LINE_ITEM_CUSTOM_FIELD_1_OPTION_ID = 10001,
                        LINE_ITEM_CUSTOM_FIELD_2_OPTION_ID = 10002,
                        LINE_ITEM_CUSTOM_FIELD_3_OPTION_ID = 10003,
                        LINE_ITEM_CUSTOM_FIELD_4_OPTION_ID = 10004,
                        LINE_ITEM_CUSTOM_FIELD_5_OPTION_ID = 10005,
                        LINE_ITEM_CUSTOM_FIELD_6_OPTION_ID = 10006,
                        LINE_ITEM_CUSTOM_FIELD_7_OPTION_ID = 10007,
                        LINE_ITEM_CUSTOM_FIELD_8_OPTION_ID = 10008,
                        LINE_ITEM_CUSTOM_FIELD_9_OPTION_ID = 10009,
                        LINE_ITEM_CUSTOM_FIELD_10_OPTION_ID = 10010,
                        LINE_ITEM_CUSTOM_FIELD_11_OPTION_ID = 10011,
                        LINE_ITEM_CUSTOM_FIELD_12_OPTION_ID = 10012,
                        LINE_ITEM_CUSTOM_FIELD_13_OPTION_ID = 10013,
                        LINE_ITEM_CUSTOM_FIELD_14_OPTION_ID = 10014,
                        LINE_ITEM_CUSTOM_FIELD_0_VALUE = 11000,
                        LINE_ITEM_CUSTOM_FIELD_1_VALUE = 11001,
                        LINE_ITEM_CUSTOM_FIELD_2_VALUE = 11002,
                        LINE_ITEM_CUSTOM_FIELD_3_VALUE = 11003,
                        LINE_ITEM_CUSTOM_FIELD_4_VALUE = 11004,
                        LINE_ITEM_CUSTOM_FIELD_5_VALUE = 11005,
                        LINE_ITEM_CUSTOM_FIELD_6_VALUE = 11006,
                        LINE_ITEM_CUSTOM_FIELD_7_VALUE = 11007,
                        LINE_ITEM_CUSTOM_FIELD_8_VALUE = 11008,
                        LINE_ITEM_CUSTOM_FIELD_9_VALUE = 11009,
                        LINE_ITEM_CUSTOM_FIELD_10_VALUE = 11010,
                        LINE_ITEM_CUSTOM_FIELD_11_VALUE = 11011,
                        LINE_ITEM_CUSTOM_FIELD_12_VALUE = 11012,
                        LINE_ITEM_CUSTOM_FIELD_13_VALUE = 11013,
                        LINE_ITEM_CUSTOM_FIELD_14_VALUE = 11014,
                        ORDER_CUSTOM_FIELD_0_OPTION_ID = 12000,
                        ORDER_CUSTOM_FIELD_1_OPTION_ID = 12001,
                        ORDER_CUSTOM_FIELD_2_OPTION_ID = 12002,
                        ORDER_CUSTOM_FIELD_3_OPTION_ID = 12003,
                        ORDER_CUSTOM_FIELD_4_OPTION_ID = 12004,
                        ORDER_CUSTOM_FIELD_5_OPTION_ID = 12005,
                        ORDER_CUSTOM_FIELD_6_OPTION_ID = 12006,
                        ORDER_CUSTOM_FIELD_7_OPTION_ID = 12007,
                        ORDER_CUSTOM_FIELD_8_OPTION_ID = 12008,
                        ORDER_CUSTOM_FIELD_9_OPTION_ID = 12009,
                        ORDER_CUSTOM_FIELD_10_OPTION_ID = 12010,
                        ORDER_CUSTOM_FIELD_11_OPTION_ID = 12011,
                        ORDER_CUSTOM_FIELD_12_OPTION_ID = 12012,
                        ORDER_CUSTOM_FIELD_13_OPTION_ID = 12013,
                        ORDER_CUSTOM_FIELD_14_OPTION_ID = 12014,
                        ORDER_CUSTOM_FIELD_0_VALUE = 13000,
                        ORDER_CUSTOM_FIELD_1_VALUE = 13001,
                        ORDER_CUSTOM_FIELD_2_VALUE = 13002,
                        ORDER_CUSTOM_FIELD_3_VALUE = 13003,
                        ORDER_CUSTOM_FIELD_4_VALUE = 13004,
                        ORDER_CUSTOM_FIELD_5_VALUE = 13005,
                        ORDER_CUSTOM_FIELD_6_VALUE = 13006,
                        ORDER_CUSTOM_FIELD_7_VALUE = 13007,
                        ORDER_CUSTOM_FIELD_8_VALUE = 13008,
                        ORDER_CUSTOM_FIELD_9_VALUE = 13009,
                        ORDER_CUSTOM_FIELD_10_VALUE = 13010,
                        ORDER_CUSTOM_FIELD_11_VALUE = 13011,
                        ORDER_CUSTOM_FIELD_12_VALUE = 13012,
                        ORDER_CUSTOM_FIELD_13_VALUE = 13013,
                        ORDER_CUSTOM_FIELD_14_VALUE = 13014,
                        CREATIVE_CUSTOM_FIELD_0_OPTION_ID = 14000,
                        CREATIVE_CUSTOM_FIELD_1_OPTION_ID = 14001,
                        CREATIVE_CUSTOM_FIELD_2_OPTION_ID = 14002,
                        CREATIVE_CUSTOM_FIELD_3_OPTION_ID = 14003,
                        CREATIVE_CUSTOM_FIELD_4_OPTION_ID = 14004,
                        CREATIVE_CUSTOM_FIELD_5_OPTION_ID = 14005,
                        CREATIVE_CUSTOM_FIELD_6_OPTION_ID = 14006,
                        CREATIVE_CUSTOM_FIELD_7_OPTION_ID = 14007,
                        CREATIVE_CUSTOM_FIELD_8_OPTION_ID = 14008,
                        CREATIVE_CUSTOM_FIELD_9_OPTION_ID = 14009,
                        CREATIVE_CUSTOM_FIELD_10_OPTION_ID = 14010,
                        CREATIVE_CUSTOM_FIELD_11_OPTION_ID = 14011,
                        CREATIVE_CUSTOM_FIELD_12_OPTION_ID = 14012,
                        CREATIVE_CUSTOM_FIELD_13_OPTION_ID = 14013,
                        CREATIVE_CUSTOM_FIELD_14_OPTION_ID = 14014,
                        CREATIVE_CUSTOM_FIELD_0_VALUE = 15000,
                        CREATIVE_CUSTOM_FIELD_1_VALUE = 15001,
                        CREATIVE_CUSTOM_FIELD_2_VALUE = 15002,
                        CREATIVE_CUSTOM_FIELD_3_VALUE = 15003,
                        CREATIVE_CUSTOM_FIELD_4_VALUE = 15004,
                        CREATIVE_CUSTOM_FIELD_5_VALUE = 15005,
                        CREATIVE_CUSTOM_FIELD_6_VALUE = 15006,
                        CREATIVE_CUSTOM_FIELD_7_VALUE = 15007,
                        CREATIVE_CUSTOM_FIELD_8_VALUE = 15008,
                        CREATIVE_CUSTOM_FIELD_9_VALUE = 15009,
                        CREATIVE_CUSTOM_FIELD_10_VALUE = 15010,
                        CREATIVE_CUSTOM_FIELD_11_VALUE = 15011,
                        CREATIVE_CUSTOM_FIELD_12_VALUE = 15012,
                        CREATIVE_CUSTOM_FIELD_13_VALUE = 15013,
                        CREATIVE_CUSTOM_FIELD_14_VALUE = 15014,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_0_OPTION_ID = 16000,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_1_OPTION_ID = 16001,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_2_OPTION_ID = 16002,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_3_OPTION_ID = 16003,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_4_OPTION_ID = 16004,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_5_OPTION_ID = 16005,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_6_OPTION_ID = 16006,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_7_OPTION_ID = 16007,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_8_OPTION_ID = 16008,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_9_OPTION_ID = 16009,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_10_OPTION_ID = 16010,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_11_OPTION_ID = 16011,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_12_OPTION_ID = 16012,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_13_OPTION_ID = 16013,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_14_OPTION_ID = 16014,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_0_VALUE = 17000,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_1_VALUE = 17001,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_2_VALUE = 17002,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_3_VALUE = 17003,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_4_VALUE = 17004,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_5_VALUE = 17005,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_6_VALUE = 17006,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_7_VALUE = 17007,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_8_VALUE = 17008,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_9_VALUE = 17009,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_10_VALUE = 17010,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_11_VALUE = 17011,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_12_VALUE = 17012,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_13_VALUE = 17013,
                        BACKFILL_LINE_ITEM_CUSTOM_FIELD_14_VALUE = 17014,
                        BACKFILL_ORDER_CUSTOM_FIELD_0_OPTION_ID = 18000,
                        BACKFILL_ORDER_CUSTOM_FIELD_1_OPTION_ID = 18001,
                        BACKFILL_ORDER_CUSTOM_FIELD_2_OPTION_ID = 18002,
                        BACKFILL_ORDER_CUSTOM_FIELD_3_OPTION_ID = 18003,
                        BACKFILL_ORDER_CUSTOM_FIELD_4_OPTION_ID = 18004,
                        BACKFILL_ORDER_CUSTOM_FIELD_5_OPTION_ID = 18005,
                        BACKFILL_ORDER_CUSTOM_FIELD_6_OPTION_ID = 18006,
                        BACKFILL_ORDER_CUSTOM_FIELD_7_OPTION_ID = 18007,
                        BACKFILL_ORDER_CUSTOM_FIELD_8_OPTION_ID = 18008,
                        BACKFILL_ORDER_CUSTOM_FIELD_9_OPTION_ID = 18009,
                        BACKFILL_ORDER_CUSTOM_FIELD_10_OPTION_ID = 18010,
                        BACKFILL_ORDER_CUSTOM_FIELD_11_OPTION_ID = 18011,
                        BACKFILL_ORDER_CUSTOM_FIELD_12_OPTION_ID = 18012,
                        BACKFILL_ORDER_CUSTOM_FIELD_13_OPTION_ID = 18013,
                        BACKFILL_ORDER_CUSTOM_FIELD_14_OPTION_ID = 18014,
                        BACKFILL_ORDER_CUSTOM_FIELD_0_VALUE = 19000,
                        BACKFILL_ORDER_CUSTOM_FIELD_1_VALUE = 19001,
                        BACKFILL_ORDER_CUSTOM_FIELD_2_VALUE = 19002,
                        BACKFILL_ORDER_CUSTOM_FIELD_3_VALUE = 19003,
                        BACKFILL_ORDER_CUSTOM_FIELD_4_VALUE = 19004,
                        BACKFILL_ORDER_CUSTOM_FIELD_5_VALUE = 19005,
                        BACKFILL_ORDER_CUSTOM_FIELD_6_VALUE = 19006,
                        BACKFILL_ORDER_CUSTOM_FIELD_7_VALUE = 19007,
                        BACKFILL_ORDER_CUSTOM_FIELD_8_VALUE = 19008,
                        BACKFILL_ORDER_CUSTOM_FIELD_9_VALUE = 19009,
                        BACKFILL_ORDER_CUSTOM_FIELD_10_VALUE = 19010,
                        BACKFILL_ORDER_CUSTOM_FIELD_11_VALUE = 19011,
                        BACKFILL_ORDER_CUSTOM_FIELD_12_VALUE = 19012,
                        BACKFILL_ORDER_CUSTOM_FIELD_13_VALUE = 19013,
                        BACKFILL_ORDER_CUSTOM_FIELD_14_VALUE = 19014,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_0_OPTION_ID = 20000,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_1_OPTION_ID = 20001,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_2_OPTION_ID = 20002,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_3_OPTION_ID = 20003,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_4_OPTION_ID = 20004,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_5_OPTION_ID = 20005,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_6_OPTION_ID = 20006,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_7_OPTION_ID = 20007,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_8_OPTION_ID = 20008,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_9_OPTION_ID = 20009,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_10_OPTION_ID = 20010,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_11_OPTION_ID = 20011,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_12_OPTION_ID = 20012,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_13_OPTION_ID = 20013,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_14_OPTION_ID = 20014,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_0_VALUE = 21000,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_1_VALUE = 21001,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_2_VALUE = 21002,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_3_VALUE = 21003,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_4_VALUE = 21004,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_5_VALUE = 21005,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_6_VALUE = 21006,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_7_VALUE = 21007,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_8_VALUE = 21008,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_9_VALUE = 21009,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_10_VALUE = 21010,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_11_VALUE = 21011,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_12_VALUE = 21012,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_13_VALUE = 21013,
                        BACKFILL_CREATIVE_CUSTOM_FIELD_14_VALUE = 21014,
                        CUSTOM_DIMENSION_0_VALUE_ID = 100000,
                        CUSTOM_DIMENSION_1_VALUE_ID = 100001,
                        CUSTOM_DIMENSION_2_VALUE_ID = 100002,
                        CUSTOM_DIMENSION_3_VALUE_ID = 100003,
                        CUSTOM_DIMENSION_4_VALUE_ID = 100004,
                        CUSTOM_DIMENSION_5_VALUE_ID = 100005,
                        CUSTOM_DIMENSION_6_VALUE_ID = 100006,
                        CUSTOM_DIMENSION_7_VALUE_ID = 100007,
                        CUSTOM_DIMENSION_8_VALUE_ID = 100008,
                        CUSTOM_DIMENSION_9_VALUE_ID = 100009,
                        CUSTOM_DIMENSION_0_VALUE = 101000,
                        CUSTOM_DIMENSION_1_VALUE = 101001,
                        CUSTOM_DIMENSION_2_VALUE = 101002,
                        CUSTOM_DIMENSION_3_VALUE = 101003,
                        CUSTOM_DIMENSION_4_VALUE = 101004,
                        CUSTOM_DIMENSION_5_VALUE = 101005,
                        CUSTOM_DIMENSION_6_VALUE = 101006,
                        CUSTOM_DIMENSION_7_VALUE = 101007,
                        CUSTOM_DIMENSION_8_VALUE = 101008,
                        CUSTOM_DIMENSION_9_VALUE = 101009
                    }

                    /** Metric enum. */
                    enum Metric {
                        METRIC_UNSPECIFIED = 0,
                        ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 61,
                        ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 58,
                        ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 57,
                        ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 60,
                        ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 56,
                        ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 59,
                        ADSENSE_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 73,
                        ADSENSE_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 70,
                        ADSENSE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 69,
                        ADSENSE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 72,
                        ADSENSE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 68,
                        ADSENSE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 71,
                        ADSENSE_AVERAGE_ECPM = 26,
                        ADSENSE_CLICKS = 23,
                        ADSENSE_CTR = 24,
                        ADSENSE_IMPRESSIONS = 22,
                        ADSENSE_PERCENT_CLICKS = 28,
                        ADSENSE_PERCENT_IMPRESSIONS = 27,
                        ADSENSE_PERCENT_REVENUE = 29,
                        ADSENSE_PERCENT_REVENUE_WITHOUT_CPD = 30,
                        ADSENSE_RESPONSES_SERVED = 41,
                        ADSENSE_REVENUE = 25,
                        AD_EXCHANGE_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 79,
                        AD_EXCHANGE_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 76,
                        AD_EXCHANGE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 75,
                        AD_EXCHANGE_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 78,
                        AD_EXCHANGE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 74,
                        AD_EXCHANGE_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 77,
                        AD_EXCHANGE_AVERAGE_ECPM = 18,
                        AD_EXCHANGE_CLICKS = 15,
                        AD_EXCHANGE_CTR = 16,
                        AD_EXCHANGE_IMPRESSIONS = 14,
                        AD_EXCHANGE_PERCENT_CLICKS = 20,
                        AD_EXCHANGE_PERCENT_IMPRESSIONS = 19,
                        AD_EXCHANGE_PERCENT_REVENUE = 21,
                        AD_EXCHANGE_PERCENT_REVENUE_WITHOUT_CPD = 31,
                        AD_EXCHANGE_RESPONSES_SERVED = 42,
                        AD_EXCHANGE_REVENUE = 17,
                        AD_REQUESTS = 38,
                        AD_SERVER_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME = 67,
                        AD_SERVER_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS = 64,
                        AD_SERVER_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS = 63,
                        AD_SERVER_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS_RATE = 66,
                        AD_SERVER_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS = 62,
                        AD_SERVER_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS_RATE = 65,
                        AD_SERVER_AVERAGE_ECPM = 34,
                        AD_SERVER_AVERAGE_ECPM_WITHOUT_CPD = 10,
                        AD_SERVER_CLICKS = 7,
                        AD_SERVER_CPD_REVENUE = 32,
                        AD_SERVER_CTR = 8,
                        AD_SERVER_IMPRESSIONS = 6,
                        AD_SERVER_PERCENT_CLICKS = 12,
                        AD_SERVER_PERCENT_IMPRESSIONS = 11,
                        AD_SERVER_PERCENT_REVENUE = 35,
                        AD_SERVER_PERCENT_REVENUE_WITHOUT_CPD = 13,
                        AD_SERVER_RESPONSES_SERVED = 40,
                        AD_SERVER_REVENUE = 33,
                        AD_SERVER_REVENUE_WITHOUT_CPD = 9,
                        AUCTIONS_WON = 80,
                        AVERAGE_ECPM = 37,
                        AVERAGE_ECPM_WITHOUT_CPD = 5,
                        BIDS = 81,
                        BIDS_IN_AUCTION = 82,
                        CALLOUTS = 83,
                        CLICKS = 2,
                        CODE_SERVED_COUNT = 44,
                        CTR = 3,
                        GOOGLE_SOLD_AUCTION_COVIEWED_IMPRESSIONS = 129,
                        GOOGLE_SOLD_AUCTION_IMPRESSIONS = 128,
                        GOOGLE_SOLD_COVIEWED_IMPRESSIONS = 131,
                        GOOGLE_SOLD_IMPRESSIONS = 130,
                        GOOGLE_SOLD_RESERVATION_COVIEWED_IMPRESSIONS = 127,
                        GOOGLE_SOLD_RESERVATION_IMPRESSIONS = 126,
                        IMPRESSIONS = 1,
                        PARTNER_SALES_FILLED_POD_REQUESTS = 135,
                        PARTNER_SALES_FILL_RATE = 136,
                        PARTNER_SALES_PARTNER_MATCH_RATE = 137,
                        PARTNER_SALES_QUERIES = 132,
                        PARTNER_SALES_UNFILLED_IMPRESSIONS = 133,
                        PARTNER_SALES_UNMATCHED_QUERIES = 134,
                        PARTNER_SOLD_CODE_SERVED = 125,
                        PARTNER_SOLD_COVIEWED_IMPRESSIONS = 124,
                        PARTNER_SOLD_IMPRESSIONS = 123,
                        PROGRAMMATIC_ELIGIBLE_AD_REQUESTS = 177,
                        PROGRAMMATIC_MATCH_RATE = 178,
                        PROGRAMMATIC_RESPONSES_SERVED = 176,
                        RESPONSES_SERVED = 39,
                        REVENUE = 36,
                        REVENUE_WITHOUT_CPD = 4,
                        SUCCESSFUL_RESPONSES = 84,
                        UNFILLED_IMPRESSIONS = 45,
                        UNMATCHED_AD_REQUESTS = 43,
                        USER_MESSAGES_OFFERWALL_MESSAGES_SHOWN = 121,
                        USER_MESSAGES_OFFERWALL_SUCCESSFUL_ENGAGEMENTS = 122,
                        VIDEO_INTERACTION_AVERAGE_INTERACTION_RATE = 92,
                        VIDEO_INTERACTION_COLLAPSES = 93,
                        VIDEO_INTERACTION_EXPANDS = 95,
                        VIDEO_INTERACTION_FULL_SCREENS = 96,
                        VIDEO_INTERACTION_MUTES = 97,
                        VIDEO_INTERACTION_PAUSES = 98,
                        VIDEO_INTERACTION_RESUMES = 99,
                        VIDEO_INTERACTION_REWINDS = 100,
                        VIDEO_INTERACTION_UNMUTES = 101,
                        VIDEO_INTERACTION_VIDEO_SKIPS = 102,
                        VIDEO_REAL_TIME_CREATIVE_SERVES = 139,
                        VIDEO_REAL_TIME_ERROR_100_COUNT = 143,
                        VIDEO_REAL_TIME_ERROR_101_COUNT = 144,
                        VIDEO_REAL_TIME_ERROR_102_COUNT = 145,
                        VIDEO_REAL_TIME_ERROR_200_COUNT = 146,
                        VIDEO_REAL_TIME_ERROR_201_COUNT = 147,
                        VIDEO_REAL_TIME_ERROR_202_COUNT = 148,
                        VIDEO_REAL_TIME_ERROR_203_COUNT = 149,
                        VIDEO_REAL_TIME_ERROR_300_COUNT = 150,
                        VIDEO_REAL_TIME_ERROR_301_COUNT = 151,
                        VIDEO_REAL_TIME_ERROR_302_COUNT = 152,
                        VIDEO_REAL_TIME_ERROR_303_COUNT = 153,
                        VIDEO_REAL_TIME_ERROR_400_COUNT = 154,
                        VIDEO_REAL_TIME_ERROR_401_COUNT = 155,
                        VIDEO_REAL_TIME_ERROR_402_COUNT = 156,
                        VIDEO_REAL_TIME_ERROR_403_COUNT = 157,
                        VIDEO_REAL_TIME_ERROR_405_COUNT = 158,
                        VIDEO_REAL_TIME_ERROR_406_COUNT = 159,
                        VIDEO_REAL_TIME_ERROR_407_COUNT = 160,
                        VIDEO_REAL_TIME_ERROR_408_COUNT = 161,
                        VIDEO_REAL_TIME_ERROR_409_COUNT = 162,
                        VIDEO_REAL_TIME_ERROR_410_COUNT = 163,
                        VIDEO_REAL_TIME_ERROR_500_COUNT = 164,
                        VIDEO_REAL_TIME_ERROR_501_COUNT = 165,
                        VIDEO_REAL_TIME_ERROR_502_COUNT = 166,
                        VIDEO_REAL_TIME_ERROR_503_COUNT = 167,
                        VIDEO_REAL_TIME_ERROR_600_COUNT = 168,
                        VIDEO_REAL_TIME_ERROR_601_COUNT = 169,
                        VIDEO_REAL_TIME_ERROR_602_COUNT = 170,
                        VIDEO_REAL_TIME_ERROR_603_COUNT = 171,
                        VIDEO_REAL_TIME_ERROR_604_COUNT = 172,
                        VIDEO_REAL_TIME_ERROR_900_COUNT = 173,
                        VIDEO_REAL_TIME_ERROR_901_COUNT = 174,
                        VIDEO_REAL_TIME_IMPRESSIONS = 138,
                        VIDEO_REAL_TIME_MATCHED_QUERIES = 140,
                        VIDEO_REAL_TIME_TOTAL_ERROR_COUNT = 175,
                        VIDEO_REAL_TIME_TOTAL_QUERIES = 142,
                        VIDEO_REAL_TIME_UNMATCHED_QUERIES = 141,
                        VIDEO_VIEWERSHIP_AUTO_PLAYS = 103,
                        VIDEO_VIEWERSHIP_AVERAGE_VIEW_RATE = 104,
                        VIDEO_VIEWERSHIP_AVERAGE_VIEW_TIME = 105,
                        VIDEO_VIEWERSHIP_CLICK_TO_PLAYS = 106,
                        VIDEO_VIEWERSHIP_COMPLETES = 107,
                        VIDEO_VIEWERSHIP_COMPLETION_RATE = 108,
                        VIDEO_VIEWERSHIP_ENGAGED_VIEWS = 109,
                        VIDEO_VIEWERSHIP_FIRST_QUARTILES = 110,
                        VIDEO_VIEWERSHIP_MIDPOINTS = 111,
                        VIDEO_VIEWERSHIP_SKIP_BUTTONS_SHOWN = 112,
                        VIDEO_VIEWERSHIP_STARTS = 113,
                        VIDEO_VIEWERSHIP_THIRD_QUARTILES = 114,
                        VIDEO_VIEWERSHIP_TOTAL_ERROR_COUNT = 115,
                        VIDEO_VIEWERSHIP_TOTAL_ERROR_RATE = 94,
                        VIDEO_VIEWERSHIP_VIDEO_LENGTH = 116,
                        VIDEO_VIEWERSHIP_VIEW_THROUGH_RATE = 117,
                        YIELD_GROUP_ESTIMATED_CPM = 88,
                        YIELD_GROUP_ESTIMATED_REVENUE = 87,
                        YIELD_GROUP_IMPRESSIONS = 85,
                        YIELD_GROUP_MEDIATION_FILL_RATE = 89,
                        YIELD_GROUP_MEDIATION_MATCHED_QUERIES = 86,
                        YIELD_GROUP_MEDIATION_PASSBACKS = 118,
                        YIELD_GROUP_MEDIATION_THIRD_PARTY_ECPM = 90
                    }

                    /** MetricValueType enum. */
                    enum MetricValueType {
                        PRIMARY = 0,
                        PRIMARY_PERCENT_OF_TOTAL = 1,
                        COMPARISON = 2,
                        COMPARISON_PERCENT_OF_TOTAL = 3,
                        ABSOLUTE_CHANGE = 4,
                        RELATIVE_CHANGE = 5
                    }

                    /** ReportType enum. */
                    enum ReportType {
                        REPORT_TYPE_UNSPECIFIED = 0,
                        HISTORICAL = 1
                    }

                    /** Visibility enum. */
                    enum Visibility {
                        HIDDEN = 0,
                        DRAFT = 1,
                        SAVED = 2
                    }
                }

                /** Properties of a RunReportRequest. */
                interface IRunReportRequest {

                    /** RunReportRequest name */
                    name?: (string|null);
                }

                /** Represents a RunReportRequest. */
                class RunReportRequest implements IRunReportRequest {

                    /**
                     * Constructs a new RunReportRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IRunReportRequest);

                    /** RunReportRequest name. */
                    public name: string;

                    /**
                     * Creates a new RunReportRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RunReportRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IRunReportRequest): google.ads.admanager.v1.RunReportRequest;

                    /**
                     * Encodes the specified RunReportRequest message. Does not implicitly {@link google.ads.admanager.v1.RunReportRequest.verify|verify} messages.
                     * @param message RunReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RunReportRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.RunReportRequest.verify|verify} messages.
                     * @param message RunReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IRunReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RunReportRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RunReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.RunReportRequest;

                    /**
                     * Decodes a RunReportRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RunReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.RunReportRequest;

                    /**
                     * Verifies a RunReportRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RunReportRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RunReportRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.RunReportRequest;

                    /**
                     * Creates a plain object from a RunReportRequest message. Also converts values to other types if specified.
                     * @param message RunReportRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.RunReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RunReportRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RunReportRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RunReportMetadata. */
                interface IRunReportMetadata {

                    /** RunReportMetadata percentComplete */
                    percentComplete?: (number|null);

                    /** RunReportMetadata report */
                    report?: (string|null);
                }

                /** Represents a RunReportMetadata. */
                class RunReportMetadata implements IRunReportMetadata {

                    /**
                     * Constructs a new RunReportMetadata.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IRunReportMetadata);

                    /** RunReportMetadata percentComplete. */
                    public percentComplete: number;

                    /** RunReportMetadata report. */
                    public report: string;

                    /**
                     * Creates a new RunReportMetadata instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RunReportMetadata instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IRunReportMetadata): google.ads.admanager.v1.RunReportMetadata;

                    /**
                     * Encodes the specified RunReportMetadata message. Does not implicitly {@link google.ads.admanager.v1.RunReportMetadata.verify|verify} messages.
                     * @param message RunReportMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IRunReportMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RunReportMetadata message, length delimited. Does not implicitly {@link google.ads.admanager.v1.RunReportMetadata.verify|verify} messages.
                     * @param message RunReportMetadata message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IRunReportMetadata, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RunReportMetadata message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RunReportMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.RunReportMetadata;

                    /**
                     * Decodes a RunReportMetadata message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RunReportMetadata
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.RunReportMetadata;

                    /**
                     * Verifies a RunReportMetadata message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RunReportMetadata message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RunReportMetadata
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.RunReportMetadata;

                    /**
                     * Creates a plain object from a RunReportMetadata message. Also converts values to other types if specified.
                     * @param message RunReportMetadata
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.RunReportMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RunReportMetadata to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RunReportMetadata
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RunReportResponse. */
                interface IRunReportResponse {

                    /** RunReportResponse reportResult */
                    reportResult?: (string|null);
                }

                /** Represents a RunReportResponse. */
                class RunReportResponse implements IRunReportResponse {

                    /**
                     * Constructs a new RunReportResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IRunReportResponse);

                    /** RunReportResponse reportResult. */
                    public reportResult: string;

                    /**
                     * Creates a new RunReportResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RunReportResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IRunReportResponse): google.ads.admanager.v1.RunReportResponse;

                    /**
                     * Encodes the specified RunReportResponse message. Does not implicitly {@link google.ads.admanager.v1.RunReportResponse.verify|verify} messages.
                     * @param message RunReportResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RunReportResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.RunReportResponse.verify|verify} messages.
                     * @param message RunReportResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IRunReportResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RunReportResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RunReportResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.RunReportResponse;

                    /**
                     * Decodes a RunReportResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RunReportResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.RunReportResponse;

                    /**
                     * Verifies a RunReportResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RunReportResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RunReportResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.RunReportResponse;

                    /**
                     * Creates a plain object from a RunReportResponse message. Also converts values to other types if specified.
                     * @param message RunReportResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.RunReportResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RunReportResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RunReportResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetReportRequest. */
                interface IGetReportRequest {

                    /** GetReportRequest name */
                    name?: (string|null);
                }

                /** Represents a GetReportRequest. */
                class GetReportRequest implements IGetReportRequest {

                    /**
                     * Constructs a new GetReportRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetReportRequest);

                    /** GetReportRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetReportRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetReportRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetReportRequest): google.ads.admanager.v1.GetReportRequest;

                    /**
                     * Encodes the specified GetReportRequest message. Does not implicitly {@link google.ads.admanager.v1.GetReportRequest.verify|verify} messages.
                     * @param message GetReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetReportRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetReportRequest.verify|verify} messages.
                     * @param message GetReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetReportRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetReportRequest;

                    /**
                     * Decodes a GetReportRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetReportRequest;

                    /**
                     * Verifies a GetReportRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetReportRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetReportRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetReportRequest;

                    /**
                     * Creates a plain object from a GetReportRequest message. Also converts values to other types if specified.
                     * @param message GetReportRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetReportRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetReportRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReportsRequest. */
                interface IListReportsRequest {

                    /** ListReportsRequest parent */
                    parent?: (string|null);

                    /** ListReportsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListReportsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListReportsRequest filter */
                    filter?: (string|null);

                    /** ListReportsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListReportsRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListReportsRequest. */
                class ListReportsRequest implements IListReportsRequest {

                    /**
                     * Constructs a new ListReportsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListReportsRequest);

                    /** ListReportsRequest parent. */
                    public parent: string;

                    /** ListReportsRequest pageSize. */
                    public pageSize: number;

                    /** ListReportsRequest pageToken. */
                    public pageToken: string;

                    /** ListReportsRequest filter. */
                    public filter: string;

                    /** ListReportsRequest orderBy. */
                    public orderBy: string;

                    /** ListReportsRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListReportsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReportsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListReportsRequest): google.ads.admanager.v1.ListReportsRequest;

                    /**
                     * Encodes the specified ListReportsRequest message. Does not implicitly {@link google.ads.admanager.v1.ListReportsRequest.verify|verify} messages.
                     * @param message ListReportsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReportsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListReportsRequest.verify|verify} messages.
                     * @param message ListReportsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListReportsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReportsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReportsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListReportsRequest;

                    /**
                     * Decodes a ListReportsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReportsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListReportsRequest;

                    /**
                     * Verifies a ListReportsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReportsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReportsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListReportsRequest;

                    /**
                     * Creates a plain object from a ListReportsRequest message. Also converts values to other types if specified.
                     * @param message ListReportsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListReportsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReportsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReportsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListReportsResponse. */
                interface IListReportsResponse {

                    /** ListReportsResponse reports */
                    reports?: (google.ads.admanager.v1.IReport[]|null);

                    /** ListReportsResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListReportsResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListReportsResponse. */
                class ListReportsResponse implements IListReportsResponse {

                    /**
                     * Constructs a new ListReportsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListReportsResponse);

                    /** ListReportsResponse reports. */
                    public reports: google.ads.admanager.v1.IReport[];

                    /** ListReportsResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListReportsResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListReportsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListReportsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListReportsResponse): google.ads.admanager.v1.ListReportsResponse;

                    /**
                     * Encodes the specified ListReportsResponse message. Does not implicitly {@link google.ads.admanager.v1.ListReportsResponse.verify|verify} messages.
                     * @param message ListReportsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListReportsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListReportsResponse.verify|verify} messages.
                     * @param message ListReportsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListReportsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListReportsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListReportsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListReportsResponse;

                    /**
                     * Decodes a ListReportsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListReportsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListReportsResponse;

                    /**
                     * Verifies a ListReportsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListReportsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListReportsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListReportsResponse;

                    /**
                     * Creates a plain object from a ListReportsResponse message. Also converts values to other types if specified.
                     * @param message ListReportsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListReportsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListReportsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListReportsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateReportRequest. */
                interface ICreateReportRequest {

                    /** CreateReportRequest parent */
                    parent?: (string|null);

                    /** CreateReportRequest report */
                    report?: (google.ads.admanager.v1.IReport|null);
                }

                /** Represents a CreateReportRequest. */
                class CreateReportRequest implements ICreateReportRequest {

                    /**
                     * Constructs a new CreateReportRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ICreateReportRequest);

                    /** CreateReportRequest parent. */
                    public parent: string;

                    /** CreateReportRequest report. */
                    public report?: (google.ads.admanager.v1.IReport|null);

                    /**
                     * Creates a new CreateReportRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateReportRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ICreateReportRequest): google.ads.admanager.v1.CreateReportRequest;

                    /**
                     * Encodes the specified CreateReportRequest message. Does not implicitly {@link google.ads.admanager.v1.CreateReportRequest.verify|verify} messages.
                     * @param message CreateReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ICreateReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateReportRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.CreateReportRequest.verify|verify} messages.
                     * @param message CreateReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ICreateReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateReportRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.CreateReportRequest;

                    /**
                     * Decodes a CreateReportRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.CreateReportRequest;

                    /**
                     * Verifies a CreateReportRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateReportRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateReportRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.CreateReportRequest;

                    /**
                     * Creates a plain object from a CreateReportRequest message. Also converts values to other types if specified.
                     * @param message CreateReportRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.CreateReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateReportRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateReportRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateReportRequest. */
                interface IUpdateReportRequest {

                    /** UpdateReportRequest report */
                    report?: (google.ads.admanager.v1.IReport|null);

                    /** UpdateReportRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateReportRequest. */
                class UpdateReportRequest implements IUpdateReportRequest {

                    /**
                     * Constructs a new UpdateReportRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IUpdateReportRequest);

                    /** UpdateReportRequest report. */
                    public report?: (google.ads.admanager.v1.IReport|null);

                    /** UpdateReportRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateReportRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateReportRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IUpdateReportRequest): google.ads.admanager.v1.UpdateReportRequest;

                    /**
                     * Encodes the specified UpdateReportRequest message. Does not implicitly {@link google.ads.admanager.v1.UpdateReportRequest.verify|verify} messages.
                     * @param message UpdateReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IUpdateReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateReportRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.UpdateReportRequest.verify|verify} messages.
                     * @param message UpdateReportRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IUpdateReportRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateReportRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.UpdateReportRequest;

                    /**
                     * Decodes an UpdateReportRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateReportRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.UpdateReportRequest;

                    /**
                     * Verifies an UpdateReportRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateReportRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateReportRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.UpdateReportRequest;

                    /**
                     * Creates a plain object from an UpdateReportRequest message. Also converts values to other types if specified.
                     * @param message UpdateReportRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.UpdateReportRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateReportRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateReportRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchReportResultRowsRequest. */
                interface IFetchReportResultRowsRequest {

                    /** FetchReportResultRowsRequest name */
                    name?: (string|null);

                    /** FetchReportResultRowsRequest pageSize */
                    pageSize?: (number|null);

                    /** FetchReportResultRowsRequest pageToken */
                    pageToken?: (string|null);
                }

                /** Represents a FetchReportResultRowsRequest. */
                class FetchReportResultRowsRequest implements IFetchReportResultRowsRequest {

                    /**
                     * Constructs a new FetchReportResultRowsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IFetchReportResultRowsRequest);

                    /** FetchReportResultRowsRequest name. */
                    public name: string;

                    /** FetchReportResultRowsRequest pageSize. */
                    public pageSize: number;

                    /** FetchReportResultRowsRequest pageToken. */
                    public pageToken: string;

                    /**
                     * Creates a new FetchReportResultRowsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchReportResultRowsRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IFetchReportResultRowsRequest): google.ads.admanager.v1.FetchReportResultRowsRequest;

                    /**
                     * Encodes the specified FetchReportResultRowsRequest message. Does not implicitly {@link google.ads.admanager.v1.FetchReportResultRowsRequest.verify|verify} messages.
                     * @param message FetchReportResultRowsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IFetchReportResultRowsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchReportResultRowsRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.FetchReportResultRowsRequest.verify|verify} messages.
                     * @param message FetchReportResultRowsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IFetchReportResultRowsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchReportResultRowsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchReportResultRowsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.FetchReportResultRowsRequest;

                    /**
                     * Decodes a FetchReportResultRowsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchReportResultRowsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.FetchReportResultRowsRequest;

                    /**
                     * Verifies a FetchReportResultRowsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchReportResultRowsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchReportResultRowsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.FetchReportResultRowsRequest;

                    /**
                     * Creates a plain object from a FetchReportResultRowsRequest message. Also converts values to other types if specified.
                     * @param message FetchReportResultRowsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.FetchReportResultRowsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchReportResultRowsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchReportResultRowsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FetchReportResultRowsResponse. */
                interface IFetchReportResultRowsResponse {

                    /** FetchReportResultRowsResponse rows */
                    rows?: (google.ads.admanager.v1.Report.DataTable.IRow[]|null);

                    /** FetchReportResultRowsResponse runTime */
                    runTime?: (google.protobuf.ITimestamp|null);

                    /** FetchReportResultRowsResponse dateRanges */
                    dateRanges?: (google.ads.admanager.v1.Report.DateRange.IFixedDateRange[]|null);

                    /** FetchReportResultRowsResponse comparisonDateRanges */
                    comparisonDateRanges?: (google.ads.admanager.v1.Report.DateRange.IFixedDateRange[]|null);

                    /** FetchReportResultRowsResponse totalRowCount */
                    totalRowCount?: (number|null);

                    /** FetchReportResultRowsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a FetchReportResultRowsResponse. */
                class FetchReportResultRowsResponse implements IFetchReportResultRowsResponse {

                    /**
                     * Constructs a new FetchReportResultRowsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IFetchReportResultRowsResponse);

                    /** FetchReportResultRowsResponse rows. */
                    public rows: google.ads.admanager.v1.Report.DataTable.IRow[];

                    /** FetchReportResultRowsResponse runTime. */
                    public runTime?: (google.protobuf.ITimestamp|null);

                    /** FetchReportResultRowsResponse dateRanges. */
                    public dateRanges: google.ads.admanager.v1.Report.DateRange.IFixedDateRange[];

                    /** FetchReportResultRowsResponse comparisonDateRanges. */
                    public comparisonDateRanges: google.ads.admanager.v1.Report.DateRange.IFixedDateRange[];

                    /** FetchReportResultRowsResponse totalRowCount. */
                    public totalRowCount: number;

                    /** FetchReportResultRowsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new FetchReportResultRowsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FetchReportResultRowsResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IFetchReportResultRowsResponse): google.ads.admanager.v1.FetchReportResultRowsResponse;

                    /**
                     * Encodes the specified FetchReportResultRowsResponse message. Does not implicitly {@link google.ads.admanager.v1.FetchReportResultRowsResponse.verify|verify} messages.
                     * @param message FetchReportResultRowsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IFetchReportResultRowsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FetchReportResultRowsResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.FetchReportResultRowsResponse.verify|verify} messages.
                     * @param message FetchReportResultRowsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IFetchReportResultRowsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FetchReportResultRowsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FetchReportResultRowsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.FetchReportResultRowsResponse;

                    /**
                     * Decodes a FetchReportResultRowsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FetchReportResultRowsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.FetchReportResultRowsResponse;

                    /**
                     * Verifies a FetchReportResultRowsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FetchReportResultRowsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FetchReportResultRowsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.FetchReportResultRowsResponse;

                    /**
                     * Creates a plain object from a FetchReportResultRowsResponse message. Also converts values to other types if specified.
                     * @param message FetchReportResultRowsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.FetchReportResultRowsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FetchReportResultRowsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FetchReportResultRowsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReportDefinition. */
                interface IReportDefinition {

                    /** ReportDefinition dimensions */
                    dimensions?: (google.ads.admanager.v1.Report.Dimension[]|null);

                    /** ReportDefinition metrics */
                    metrics?: (google.ads.admanager.v1.Report.Metric[]|null);

                    /** ReportDefinition filters */
                    filters?: (google.ads.admanager.v1.Report.IFilter[]|null);

                    /** ReportDefinition timeZone */
                    timeZone?: (string|null);

                    /** ReportDefinition currencyCode */
                    currencyCode?: (string|null);

                    /** ReportDefinition dateRange */
                    dateRange?: (google.ads.admanager.v1.Report.IDateRange|null);

                    /** ReportDefinition comparisonDateRange */
                    comparisonDateRange?: (google.ads.admanager.v1.Report.IDateRange|null);

                    /** ReportDefinition customDimensionKeyIds */
                    customDimensionKeyIds?: ((number|Long|string)[]|null);

                    /** ReportDefinition lineItemCustomFieldIds */
                    lineItemCustomFieldIds?: ((number|Long|string)[]|null);

                    /** ReportDefinition orderCustomFieldIds */
                    orderCustomFieldIds?: ((number|Long|string)[]|null);

                    /** ReportDefinition creativeCustomFieldIds */
                    creativeCustomFieldIds?: ((number|Long|string)[]|null);

                    /** ReportDefinition reportType */
                    reportType?: (google.ads.admanager.v1.Report.ReportType|keyof typeof google.ads.admanager.v1.Report.ReportType|null);

                    /** ReportDefinition timePeriodColumn */
                    timePeriodColumn?: (google.ads.admanager.v1.Report.TimePeriodColumn|keyof typeof google.ads.admanager.v1.Report.TimePeriodColumn|null);

                    /** ReportDefinition flags */
                    flags?: (google.ads.admanager.v1.Report.IFlag[]|null);

                    /** ReportDefinition sorts */
                    sorts?: (google.ads.admanager.v1.Report.ISort[]|null);
                }

                /** Represents a ReportDefinition. */
                class ReportDefinition implements IReportDefinition {

                    /**
                     * Constructs a new ReportDefinition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IReportDefinition);

                    /** ReportDefinition dimensions. */
                    public dimensions: google.ads.admanager.v1.Report.Dimension[];

                    /** ReportDefinition metrics. */
                    public metrics: google.ads.admanager.v1.Report.Metric[];

                    /** ReportDefinition filters. */
                    public filters: google.ads.admanager.v1.Report.IFilter[];

                    /** ReportDefinition timeZone. */
                    public timeZone: string;

                    /** ReportDefinition currencyCode. */
                    public currencyCode: string;

                    /** ReportDefinition dateRange. */
                    public dateRange?: (google.ads.admanager.v1.Report.IDateRange|null);

                    /** ReportDefinition comparisonDateRange. */
                    public comparisonDateRange?: (google.ads.admanager.v1.Report.IDateRange|null);

                    /** ReportDefinition customDimensionKeyIds. */
                    public customDimensionKeyIds: (number|Long|string)[];

                    /** ReportDefinition lineItemCustomFieldIds. */
                    public lineItemCustomFieldIds: (number|Long|string)[];

                    /** ReportDefinition orderCustomFieldIds. */
                    public orderCustomFieldIds: (number|Long|string)[];

                    /** ReportDefinition creativeCustomFieldIds. */
                    public creativeCustomFieldIds: (number|Long|string)[];

                    /** ReportDefinition reportType. */
                    public reportType: (google.ads.admanager.v1.Report.ReportType|keyof typeof google.ads.admanager.v1.Report.ReportType);

                    /** ReportDefinition timePeriodColumn. */
                    public timePeriodColumn: (google.ads.admanager.v1.Report.TimePeriodColumn|keyof typeof google.ads.admanager.v1.Report.TimePeriodColumn);

                    /** ReportDefinition flags. */
                    public flags: google.ads.admanager.v1.Report.IFlag[];

                    /** ReportDefinition sorts. */
                    public sorts: google.ads.admanager.v1.Report.ISort[];

                    /** ReportDefinition _comparisonDateRange. */
                    public _comparisonDateRange?: "comparisonDateRange";

                    /**
                     * Creates a new ReportDefinition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReportDefinition instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IReportDefinition): google.ads.admanager.v1.ReportDefinition;

                    /**
                     * Encodes the specified ReportDefinition message. Does not implicitly {@link google.ads.admanager.v1.ReportDefinition.verify|verify} messages.
                     * @param message ReportDefinition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IReportDefinition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReportDefinition message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ReportDefinition.verify|verify} messages.
                     * @param message ReportDefinition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IReportDefinition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReportDefinition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReportDefinition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ReportDefinition;

                    /**
                     * Decodes a ReportDefinition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReportDefinition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ReportDefinition;

                    /**
                     * Verifies a ReportDefinition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReportDefinition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReportDefinition
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ReportDefinition;

                    /**
                     * Creates a plain object from a ReportDefinition message. Also converts values to other types if specified.
                     * @param message ReportDefinition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ReportDefinition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReportDefinition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReportDefinition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ScheduleOptions. */
                interface IScheduleOptions {

                    /** ScheduleOptions schedule */
                    schedule?: (google.ads.admanager.v1.ISchedule|null);

                    /** ScheduleOptions deliveryCondition */
                    deliveryCondition?: (google.ads.admanager.v1.ScheduleOptions.DeliveryCondition|keyof typeof google.ads.admanager.v1.ScheduleOptions.DeliveryCondition|null);

                    /** ScheduleOptions flags */
                    flags?: (google.ads.admanager.v1.Report.IFlag[]|null);
                }

                /** Represents a ScheduleOptions. */
                class ScheduleOptions implements IScheduleOptions {

                    /**
                     * Constructs a new ScheduleOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IScheduleOptions);

                    /** ScheduleOptions schedule. */
                    public schedule?: (google.ads.admanager.v1.ISchedule|null);

                    /** ScheduleOptions deliveryCondition. */
                    public deliveryCondition: (google.ads.admanager.v1.ScheduleOptions.DeliveryCondition|keyof typeof google.ads.admanager.v1.ScheduleOptions.DeliveryCondition);

                    /** ScheduleOptions flags. */
                    public flags: google.ads.admanager.v1.Report.IFlag[];

                    /**
                     * Creates a new ScheduleOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ScheduleOptions instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IScheduleOptions): google.ads.admanager.v1.ScheduleOptions;

                    /**
                     * Encodes the specified ScheduleOptions message. Does not implicitly {@link google.ads.admanager.v1.ScheduleOptions.verify|verify} messages.
                     * @param message ScheduleOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IScheduleOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ScheduleOptions message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ScheduleOptions.verify|verify} messages.
                     * @param message ScheduleOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IScheduleOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ScheduleOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ScheduleOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ScheduleOptions;

                    /**
                     * Decodes a ScheduleOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ScheduleOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ScheduleOptions;

                    /**
                     * Verifies a ScheduleOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ScheduleOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ScheduleOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ScheduleOptions;

                    /**
                     * Creates a plain object from a ScheduleOptions message. Also converts values to other types if specified.
                     * @param message ScheduleOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ScheduleOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ScheduleOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ScheduleOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ScheduleOptions {

                    /** DeliveryCondition enum. */
                    enum DeliveryCondition {
                        NEVER = 0,
                        ALWAYS = 1,
                        WHEN_FLAG_CONDITIONS_MET = 2
                    }
                }

                /** Properties of a Schedule. */
                interface ISchedule {

                    /** Schedule weeklySchedule */
                    weeklySchedule?: (google.ads.admanager.v1.Schedule.IWeeklySchedule|null);

                    /** Schedule monthlySchedule */
                    monthlySchedule?: (google.ads.admanager.v1.Schedule.IMonthlySchedule|null);

                    /** Schedule startDate */
                    startDate?: (google.type.IDate|null);

                    /** Schedule endDate */
                    endDate?: (google.type.IDate|null);

                    /** Schedule frequency */
                    frequency?: (google.ads.admanager.v1.Schedule.Frequency|keyof typeof google.ads.admanager.v1.Schedule.Frequency|null);

                    /** Schedule startTime */
                    startTime?: (google.type.ITimeOfDay|null);
                }

                /** Represents a Schedule. */
                class Schedule implements ISchedule {

                    /**
                     * Constructs a new Schedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ISchedule);

                    /** Schedule weeklySchedule. */
                    public weeklySchedule?: (google.ads.admanager.v1.Schedule.IWeeklySchedule|null);

                    /** Schedule monthlySchedule. */
                    public monthlySchedule?: (google.ads.admanager.v1.Schedule.IMonthlySchedule|null);

                    /** Schedule startDate. */
                    public startDate?: (google.type.IDate|null);

                    /** Schedule endDate. */
                    public endDate?: (google.type.IDate|null);

                    /** Schedule frequency. */
                    public frequency: (google.ads.admanager.v1.Schedule.Frequency|keyof typeof google.ads.admanager.v1.Schedule.Frequency);

                    /** Schedule startTime. */
                    public startTime?: (google.type.ITimeOfDay|null);

                    /** Schedule frequencySchedule. */
                    public frequencySchedule?: ("weeklySchedule"|"monthlySchedule");

                    /**
                     * Creates a new Schedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Schedule instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ISchedule): google.ads.admanager.v1.Schedule;

                    /**
                     * Encodes the specified Schedule message. Does not implicitly {@link google.ads.admanager.v1.Schedule.verify|verify} messages.
                     * @param message Schedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ISchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Schedule message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Schedule.verify|verify} messages.
                     * @param message Schedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ISchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Schedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Schedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Schedule;

                    /**
                     * Decodes a Schedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Schedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Schedule;

                    /**
                     * Verifies a Schedule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Schedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Schedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Schedule;

                    /**
                     * Creates a plain object from a Schedule message. Also converts values to other types if specified.
                     * @param message Schedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Schedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Schedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Schedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Schedule {

                    /** Properties of a WeeklySchedule. */
                    interface IWeeklySchedule {

                        /** WeeklySchedule weeklyScheduledDays */
                        weeklyScheduledDays?: (google.type.DayOfWeek[]|null);
                    }

                    /** Represents a WeeklySchedule. */
                    class WeeklySchedule implements IWeeklySchedule {

                        /**
                         * Constructs a new WeeklySchedule.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Schedule.IWeeklySchedule);

                        /** WeeklySchedule weeklyScheduledDays. */
                        public weeklyScheduledDays: google.type.DayOfWeek[];

                        /**
                         * Creates a new WeeklySchedule instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns WeeklySchedule instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Schedule.IWeeklySchedule): google.ads.admanager.v1.Schedule.WeeklySchedule;

                        /**
                         * Encodes the specified WeeklySchedule message. Does not implicitly {@link google.ads.admanager.v1.Schedule.WeeklySchedule.verify|verify} messages.
                         * @param message WeeklySchedule message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Schedule.IWeeklySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified WeeklySchedule message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Schedule.WeeklySchedule.verify|verify} messages.
                         * @param message WeeklySchedule message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Schedule.IWeeklySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a WeeklySchedule message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns WeeklySchedule
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Schedule.WeeklySchedule;

                        /**
                         * Decodes a WeeklySchedule message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns WeeklySchedule
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Schedule.WeeklySchedule;

                        /**
                         * Verifies a WeeklySchedule message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a WeeklySchedule message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns WeeklySchedule
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Schedule.WeeklySchedule;

                        /**
                         * Creates a plain object from a WeeklySchedule message. Also converts values to other types if specified.
                         * @param message WeeklySchedule
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Schedule.WeeklySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this WeeklySchedule to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for WeeklySchedule
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a MonthlySchedule. */
                    interface IMonthlySchedule {

                        /** MonthlySchedule monthlyScheduledDays */
                        monthlyScheduledDays?: (number[]|null);
                    }

                    /** Represents a MonthlySchedule. */
                    class MonthlySchedule implements IMonthlySchedule {

                        /**
                         * Constructs a new MonthlySchedule.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.ads.admanager.v1.Schedule.IMonthlySchedule);

                        /** MonthlySchedule monthlyScheduledDays. */
                        public monthlyScheduledDays: number[];

                        /**
                         * Creates a new MonthlySchedule instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MonthlySchedule instance
                         */
                        public static create(properties?: google.ads.admanager.v1.Schedule.IMonthlySchedule): google.ads.admanager.v1.Schedule.MonthlySchedule;

                        /**
                         * Encodes the specified MonthlySchedule message. Does not implicitly {@link google.ads.admanager.v1.Schedule.MonthlySchedule.verify|verify} messages.
                         * @param message MonthlySchedule message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.ads.admanager.v1.Schedule.IMonthlySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MonthlySchedule message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Schedule.MonthlySchedule.verify|verify} messages.
                         * @param message MonthlySchedule message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.ads.admanager.v1.Schedule.IMonthlySchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MonthlySchedule message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MonthlySchedule
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Schedule.MonthlySchedule;

                        /**
                         * Decodes a MonthlySchedule message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MonthlySchedule
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Schedule.MonthlySchedule;

                        /**
                         * Verifies a MonthlySchedule message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a MonthlySchedule message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MonthlySchedule
                         */
                        public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Schedule.MonthlySchedule;

                        /**
                         * Creates a plain object from a MonthlySchedule message. Also converts values to other types if specified.
                         * @param message MonthlySchedule
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.ads.admanager.v1.Schedule.MonthlySchedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MonthlySchedule to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MonthlySchedule
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Frequency enum. */
                    enum Frequency {
                        FREQUENCY_UNSPECIFIED = 0,
                        HOURLY = 1,
                        TWO_TIMES_DAILY = 2,
                        THREE_TIMES_DAILY = 3,
                        FOUR_TIMES_DAILY = 4,
                        DAILY = 5,
                        WEEKLY = 6,
                        MONTHLY = 7
                    }
                }

                /** Properties of a RoleStatusEnum. */
                interface IRoleStatusEnum {
                }

                /** Represents a RoleStatusEnum. */
                class RoleStatusEnum implements IRoleStatusEnum {

                    /**
                     * Constructs a new RoleStatusEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IRoleStatusEnum);

                    /**
                     * Creates a new RoleStatusEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RoleStatusEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IRoleStatusEnum): google.ads.admanager.v1.RoleStatusEnum;

                    /**
                     * Encodes the specified RoleStatusEnum message. Does not implicitly {@link google.ads.admanager.v1.RoleStatusEnum.verify|verify} messages.
                     * @param message RoleStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IRoleStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RoleStatusEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.RoleStatusEnum.verify|verify} messages.
                     * @param message RoleStatusEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IRoleStatusEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RoleStatusEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RoleStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.RoleStatusEnum;

                    /**
                     * Decodes a RoleStatusEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RoleStatusEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.RoleStatusEnum;

                    /**
                     * Verifies a RoleStatusEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RoleStatusEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RoleStatusEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.RoleStatusEnum;

                    /**
                     * Creates a plain object from a RoleStatusEnum message. Also converts values to other types if specified.
                     * @param message RoleStatusEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.RoleStatusEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RoleStatusEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RoleStatusEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RoleStatusEnum {

                    /** RoleStatus enum. */
                    enum RoleStatus {
                        ROLE_STATUS_UNSPECIFIED = 0,
                        ACTIVE = 1,
                        INACTIVE = 2
                    }
                }

                /** Properties of a Role. */
                interface IRole {

                    /** Role name */
                    name?: (string|null);

                    /** Role roleId */
                    roleId?: (number|Long|string|null);

                    /** Role displayName */
                    displayName?: (string|null);

                    /** Role description */
                    description?: (string|null);

                    /** Role builtIn */
                    builtIn?: (boolean|null);

                    /** Role status */
                    status?: (google.ads.admanager.v1.RoleStatusEnum.RoleStatus|keyof typeof google.ads.admanager.v1.RoleStatusEnum.RoleStatus|null);
                }

                /** Represents a Role. */
                class Role implements IRole {

                    /**
                     * Constructs a new Role.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IRole);

                    /** Role name. */
                    public name: string;

                    /** Role roleId. */
                    public roleId: (number|Long|string);

                    /** Role displayName. */
                    public displayName: string;

                    /** Role description. */
                    public description: string;

                    /** Role builtIn. */
                    public builtIn: boolean;

                    /** Role status. */
                    public status: (google.ads.admanager.v1.RoleStatusEnum.RoleStatus|keyof typeof google.ads.admanager.v1.RoleStatusEnum.RoleStatus);

                    /**
                     * Creates a new Role instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Role instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IRole): google.ads.admanager.v1.Role;

                    /**
                     * Encodes the specified Role message. Does not implicitly {@link google.ads.admanager.v1.Role.verify|verify} messages.
                     * @param message Role message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IRole, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Role message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Role.verify|verify} messages.
                     * @param message Role message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IRole, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Role message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Role
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Role;

                    /**
                     * Decodes a Role message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Role
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Role;

                    /**
                     * Verifies a Role message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Role message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Role
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Role;

                    /**
                     * Creates a plain object from a Role message. Also converts values to other types if specified.
                     * @param message Role
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Role, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Role to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Role
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a RoleService */
                class RoleService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new RoleService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new RoleService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): RoleService;

                    /**
                     * Calls GetRole.
                     * @param request GetRoleRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Role
                     */
                    public getRole(request: google.ads.admanager.v1.IGetRoleRequest, callback: google.ads.admanager.v1.RoleService.GetRoleCallback): void;

                    /**
                     * Calls GetRole.
                     * @param request GetRoleRequest message or plain object
                     * @returns Promise
                     */
                    public getRole(request: google.ads.admanager.v1.IGetRoleRequest): Promise<google.ads.admanager.v1.Role>;

                    /**
                     * Calls ListRoles.
                     * @param request ListRolesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListRolesResponse
                     */
                    public listRoles(request: google.ads.admanager.v1.IListRolesRequest, callback: google.ads.admanager.v1.RoleService.ListRolesCallback): void;

                    /**
                     * Calls ListRoles.
                     * @param request ListRolesRequest message or plain object
                     * @returns Promise
                     */
                    public listRoles(request: google.ads.admanager.v1.IListRolesRequest): Promise<google.ads.admanager.v1.ListRolesResponse>;
                }

                namespace RoleService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.RoleService|getRole}.
                     * @param error Error, if any
                     * @param [response] Role
                     */
                    type GetRoleCallback = (error: (Error|null), response?: google.ads.admanager.v1.Role) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.RoleService|listRoles}.
                     * @param error Error, if any
                     * @param [response] ListRolesResponse
                     */
                    type ListRolesCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListRolesResponse) => void;
                }

                /** Properties of a GetRoleRequest. */
                interface IGetRoleRequest {

                    /** GetRoleRequest name */
                    name?: (string|null);
                }

                /** Represents a GetRoleRequest. */
                class GetRoleRequest implements IGetRoleRequest {

                    /**
                     * Constructs a new GetRoleRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetRoleRequest);

                    /** GetRoleRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetRoleRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetRoleRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetRoleRequest): google.ads.admanager.v1.GetRoleRequest;

                    /**
                     * Encodes the specified GetRoleRequest message. Does not implicitly {@link google.ads.admanager.v1.GetRoleRequest.verify|verify} messages.
                     * @param message GetRoleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetRoleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetRoleRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetRoleRequest.verify|verify} messages.
                     * @param message GetRoleRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetRoleRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetRoleRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetRoleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetRoleRequest;

                    /**
                     * Decodes a GetRoleRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetRoleRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetRoleRequest;

                    /**
                     * Verifies a GetRoleRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetRoleRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetRoleRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetRoleRequest;

                    /**
                     * Creates a plain object from a GetRoleRequest message. Also converts values to other types if specified.
                     * @param message GetRoleRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetRoleRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetRoleRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetRoleRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRolesRequest. */
                interface IListRolesRequest {

                    /** ListRolesRequest parent */
                    parent?: (string|null);

                    /** ListRolesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListRolesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListRolesRequest filter */
                    filter?: (string|null);

                    /** ListRolesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListRolesRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListRolesRequest. */
                class ListRolesRequest implements IListRolesRequest {

                    /**
                     * Constructs a new ListRolesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListRolesRequest);

                    /** ListRolesRequest parent. */
                    public parent: string;

                    /** ListRolesRequest pageSize. */
                    public pageSize: number;

                    /** ListRolesRequest pageToken. */
                    public pageToken: string;

                    /** ListRolesRequest filter. */
                    public filter: string;

                    /** ListRolesRequest orderBy. */
                    public orderBy: string;

                    /** ListRolesRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListRolesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRolesRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListRolesRequest): google.ads.admanager.v1.ListRolesRequest;

                    /**
                     * Encodes the specified ListRolesRequest message. Does not implicitly {@link google.ads.admanager.v1.ListRolesRequest.verify|verify} messages.
                     * @param message ListRolesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListRolesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRolesRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListRolesRequest.verify|verify} messages.
                     * @param message ListRolesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListRolesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRolesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRolesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListRolesRequest;

                    /**
                     * Decodes a ListRolesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRolesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListRolesRequest;

                    /**
                     * Verifies a ListRolesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRolesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRolesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListRolesRequest;

                    /**
                     * Creates a plain object from a ListRolesRequest message. Also converts values to other types if specified.
                     * @param message ListRolesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListRolesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRolesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRolesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListRolesResponse. */
                interface IListRolesResponse {

                    /** ListRolesResponse roles */
                    roles?: (google.ads.admanager.v1.IRole[]|null);

                    /** ListRolesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListRolesResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListRolesResponse. */
                class ListRolesResponse implements IListRolesResponse {

                    /**
                     * Constructs a new ListRolesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListRolesResponse);

                    /** ListRolesResponse roles. */
                    public roles: google.ads.admanager.v1.IRole[];

                    /** ListRolesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListRolesResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListRolesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListRolesResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListRolesResponse): google.ads.admanager.v1.ListRolesResponse;

                    /**
                     * Encodes the specified ListRolesResponse message. Does not implicitly {@link google.ads.admanager.v1.ListRolesResponse.verify|verify} messages.
                     * @param message ListRolesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListRolesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListRolesResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListRolesResponse.verify|verify} messages.
                     * @param message ListRolesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListRolesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListRolesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListRolesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListRolesResponse;

                    /**
                     * Decodes a ListRolesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListRolesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListRolesResponse;

                    /**
                     * Verifies a ListRolesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListRolesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListRolesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListRolesResponse;

                    /**
                     * Creates a plain object from a ListRolesResponse message. Also converts values to other types if specified.
                     * @param message ListRolesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListRolesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListRolesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListRolesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TaxonomyCategory. */
                interface ITaxonomyCategory {

                    /** TaxonomyCategory name */
                    name?: (string|null);

                    /** TaxonomyCategory taxonomyCategoryId */
                    taxonomyCategoryId?: (number|Long|string|null);

                    /** TaxonomyCategory displayName */
                    displayName?: (string|null);

                    /** TaxonomyCategory groupingOnly */
                    groupingOnly?: (boolean|null);

                    /** TaxonomyCategory parentTaxonomyCategoryId */
                    parentTaxonomyCategoryId?: (number|Long|string|null);

                    /** TaxonomyCategory taxonomyType */
                    taxonomyType?: (google.ads.admanager.v1.TaxonomyTypeEnum.TaxonomyType|keyof typeof google.ads.admanager.v1.TaxonomyTypeEnum.TaxonomyType|null);

                    /** TaxonomyCategory ancestorNames */
                    ancestorNames?: (string[]|null);

                    /** TaxonomyCategory ancestorTaxonomyCategoryIds */
                    ancestorTaxonomyCategoryIds?: ((number|Long|string)[]|null);
                }

                /** Represents a TaxonomyCategory. */
                class TaxonomyCategory implements ITaxonomyCategory {

                    /**
                     * Constructs a new TaxonomyCategory.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ITaxonomyCategory);

                    /** TaxonomyCategory name. */
                    public name: string;

                    /** TaxonomyCategory taxonomyCategoryId. */
                    public taxonomyCategoryId: (number|Long|string);

                    /** TaxonomyCategory displayName. */
                    public displayName: string;

                    /** TaxonomyCategory groupingOnly. */
                    public groupingOnly: boolean;

                    /** TaxonomyCategory parentTaxonomyCategoryId. */
                    public parentTaxonomyCategoryId: (number|Long|string);

                    /** TaxonomyCategory taxonomyType. */
                    public taxonomyType: (google.ads.admanager.v1.TaxonomyTypeEnum.TaxonomyType|keyof typeof google.ads.admanager.v1.TaxonomyTypeEnum.TaxonomyType);

                    /** TaxonomyCategory ancestorNames. */
                    public ancestorNames: string[];

                    /** TaxonomyCategory ancestorTaxonomyCategoryIds. */
                    public ancestorTaxonomyCategoryIds: (number|Long|string)[];

                    /**
                     * Creates a new TaxonomyCategory instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TaxonomyCategory instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ITaxonomyCategory): google.ads.admanager.v1.TaxonomyCategory;

                    /**
                     * Encodes the specified TaxonomyCategory message. Does not implicitly {@link google.ads.admanager.v1.TaxonomyCategory.verify|verify} messages.
                     * @param message TaxonomyCategory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ITaxonomyCategory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TaxonomyCategory message, length delimited. Does not implicitly {@link google.ads.admanager.v1.TaxonomyCategory.verify|verify} messages.
                     * @param message TaxonomyCategory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ITaxonomyCategory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TaxonomyCategory message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TaxonomyCategory
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.TaxonomyCategory;

                    /**
                     * Decodes a TaxonomyCategory message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TaxonomyCategory
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.TaxonomyCategory;

                    /**
                     * Verifies a TaxonomyCategory message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TaxonomyCategory message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TaxonomyCategory
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.TaxonomyCategory;

                    /**
                     * Creates a plain object from a TaxonomyCategory message. Also converts values to other types if specified.
                     * @param message TaxonomyCategory
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.TaxonomyCategory, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TaxonomyCategory to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TaxonomyCategory
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TaxonomyTypeEnum. */
                interface ITaxonomyTypeEnum {
                }

                /** Represents a TaxonomyTypeEnum. */
                class TaxonomyTypeEnum implements ITaxonomyTypeEnum {

                    /**
                     * Constructs a new TaxonomyTypeEnum.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ITaxonomyTypeEnum);

                    /**
                     * Creates a new TaxonomyTypeEnum instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TaxonomyTypeEnum instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ITaxonomyTypeEnum): google.ads.admanager.v1.TaxonomyTypeEnum;

                    /**
                     * Encodes the specified TaxonomyTypeEnum message. Does not implicitly {@link google.ads.admanager.v1.TaxonomyTypeEnum.verify|verify} messages.
                     * @param message TaxonomyTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ITaxonomyTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TaxonomyTypeEnum message, length delimited. Does not implicitly {@link google.ads.admanager.v1.TaxonomyTypeEnum.verify|verify} messages.
                     * @param message TaxonomyTypeEnum message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ITaxonomyTypeEnum, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TaxonomyTypeEnum message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TaxonomyTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.TaxonomyTypeEnum;

                    /**
                     * Decodes a TaxonomyTypeEnum message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TaxonomyTypeEnum
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.TaxonomyTypeEnum;

                    /**
                     * Verifies a TaxonomyTypeEnum message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TaxonomyTypeEnum message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TaxonomyTypeEnum
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.TaxonomyTypeEnum;

                    /**
                     * Creates a plain object from a TaxonomyTypeEnum message. Also converts values to other types if specified.
                     * @param message TaxonomyTypeEnum
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.TaxonomyTypeEnum, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TaxonomyTypeEnum to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TaxonomyTypeEnum
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TaxonomyTypeEnum {

                    /** TaxonomyType enum. */
                    enum TaxonomyType {
                        TAXONOMY_TYPE_UNSPECIFIED = 0,
                        TAXONOMY_IAB_AUDIENCE_1_1 = 3,
                        TAXONOMY_IAB_CONTENT_2_1 = 4,
                        TAXONOMY_IAB_CONTENT_2_2 = 6,
                        TAXONOMY_IAB_CONTENT_3_0 = 5,
                        TAXONOMY_GOOGLE_STRUCTURED_VIDEO_1_0 = 7
                    }
                }

                /** Represents a TaxonomyCategoryService */
                class TaxonomyCategoryService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new TaxonomyCategoryService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new TaxonomyCategoryService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): TaxonomyCategoryService;

                    /**
                     * Calls GetTaxonomyCategory.
                     * @param request GetTaxonomyCategoryRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TaxonomyCategory
                     */
                    public getTaxonomyCategory(request: google.ads.admanager.v1.IGetTaxonomyCategoryRequest, callback: google.ads.admanager.v1.TaxonomyCategoryService.GetTaxonomyCategoryCallback): void;

                    /**
                     * Calls GetTaxonomyCategory.
                     * @param request GetTaxonomyCategoryRequest message or plain object
                     * @returns Promise
                     */
                    public getTaxonomyCategory(request: google.ads.admanager.v1.IGetTaxonomyCategoryRequest): Promise<google.ads.admanager.v1.TaxonomyCategory>;

                    /**
                     * Calls ListTaxonomyCategories.
                     * @param request ListTaxonomyCategoriesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListTaxonomyCategoriesResponse
                     */
                    public listTaxonomyCategories(request: google.ads.admanager.v1.IListTaxonomyCategoriesRequest, callback: google.ads.admanager.v1.TaxonomyCategoryService.ListTaxonomyCategoriesCallback): void;

                    /**
                     * Calls ListTaxonomyCategories.
                     * @param request ListTaxonomyCategoriesRequest message or plain object
                     * @returns Promise
                     */
                    public listTaxonomyCategories(request: google.ads.admanager.v1.IListTaxonomyCategoriesRequest): Promise<google.ads.admanager.v1.ListTaxonomyCategoriesResponse>;
                }

                namespace TaxonomyCategoryService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.TaxonomyCategoryService|getTaxonomyCategory}.
                     * @param error Error, if any
                     * @param [response] TaxonomyCategory
                     */
                    type GetTaxonomyCategoryCallback = (error: (Error|null), response?: google.ads.admanager.v1.TaxonomyCategory) => void;

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.TaxonomyCategoryService|listTaxonomyCategories}.
                     * @param error Error, if any
                     * @param [response] ListTaxonomyCategoriesResponse
                     */
                    type ListTaxonomyCategoriesCallback = (error: (Error|null), response?: google.ads.admanager.v1.ListTaxonomyCategoriesResponse) => void;
                }

                /** Properties of a GetTaxonomyCategoryRequest. */
                interface IGetTaxonomyCategoryRequest {

                    /** GetTaxonomyCategoryRequest name */
                    name?: (string|null);
                }

                /** Represents a GetTaxonomyCategoryRequest. */
                class GetTaxonomyCategoryRequest implements IGetTaxonomyCategoryRequest {

                    /**
                     * Constructs a new GetTaxonomyCategoryRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetTaxonomyCategoryRequest);

                    /** GetTaxonomyCategoryRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetTaxonomyCategoryRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTaxonomyCategoryRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetTaxonomyCategoryRequest): google.ads.admanager.v1.GetTaxonomyCategoryRequest;

                    /**
                     * Encodes the specified GetTaxonomyCategoryRequest message. Does not implicitly {@link google.ads.admanager.v1.GetTaxonomyCategoryRequest.verify|verify} messages.
                     * @param message GetTaxonomyCategoryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetTaxonomyCategoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTaxonomyCategoryRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetTaxonomyCategoryRequest.verify|verify} messages.
                     * @param message GetTaxonomyCategoryRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetTaxonomyCategoryRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTaxonomyCategoryRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTaxonomyCategoryRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetTaxonomyCategoryRequest;

                    /**
                     * Decodes a GetTaxonomyCategoryRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTaxonomyCategoryRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetTaxonomyCategoryRequest;

                    /**
                     * Verifies a GetTaxonomyCategoryRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetTaxonomyCategoryRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTaxonomyCategoryRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetTaxonomyCategoryRequest;

                    /**
                     * Creates a plain object from a GetTaxonomyCategoryRequest message. Also converts values to other types if specified.
                     * @param message GetTaxonomyCategoryRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetTaxonomyCategoryRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTaxonomyCategoryRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTaxonomyCategoryRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTaxonomyCategoriesRequest. */
                interface IListTaxonomyCategoriesRequest {

                    /** ListTaxonomyCategoriesRequest parent */
                    parent?: (string|null);

                    /** ListTaxonomyCategoriesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListTaxonomyCategoriesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTaxonomyCategoriesRequest filter */
                    filter?: (string|null);

                    /** ListTaxonomyCategoriesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTaxonomyCategoriesRequest skip */
                    skip?: (number|null);
                }

                /** Represents a ListTaxonomyCategoriesRequest. */
                class ListTaxonomyCategoriesRequest implements IListTaxonomyCategoriesRequest {

                    /**
                     * Constructs a new ListTaxonomyCategoriesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListTaxonomyCategoriesRequest);

                    /** ListTaxonomyCategoriesRequest parent. */
                    public parent: string;

                    /** ListTaxonomyCategoriesRequest pageSize. */
                    public pageSize: number;

                    /** ListTaxonomyCategoriesRequest pageToken. */
                    public pageToken: string;

                    /** ListTaxonomyCategoriesRequest filter. */
                    public filter: string;

                    /** ListTaxonomyCategoriesRequest orderBy. */
                    public orderBy: string;

                    /** ListTaxonomyCategoriesRequest skip. */
                    public skip: number;

                    /**
                     * Creates a new ListTaxonomyCategoriesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTaxonomyCategoriesRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListTaxonomyCategoriesRequest): google.ads.admanager.v1.ListTaxonomyCategoriesRequest;

                    /**
                     * Encodes the specified ListTaxonomyCategoriesRequest message. Does not implicitly {@link google.ads.admanager.v1.ListTaxonomyCategoriesRequest.verify|verify} messages.
                     * @param message ListTaxonomyCategoriesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListTaxonomyCategoriesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTaxonomyCategoriesRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListTaxonomyCategoriesRequest.verify|verify} messages.
                     * @param message ListTaxonomyCategoriesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListTaxonomyCategoriesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTaxonomyCategoriesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTaxonomyCategoriesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListTaxonomyCategoriesRequest;

                    /**
                     * Decodes a ListTaxonomyCategoriesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTaxonomyCategoriesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListTaxonomyCategoriesRequest;

                    /**
                     * Verifies a ListTaxonomyCategoriesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTaxonomyCategoriesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTaxonomyCategoriesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListTaxonomyCategoriesRequest;

                    /**
                     * Creates a plain object from a ListTaxonomyCategoriesRequest message. Also converts values to other types if specified.
                     * @param message ListTaxonomyCategoriesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListTaxonomyCategoriesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTaxonomyCategoriesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTaxonomyCategoriesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListTaxonomyCategoriesResponse. */
                interface IListTaxonomyCategoriesResponse {

                    /** ListTaxonomyCategoriesResponse taxonomyCategories */
                    taxonomyCategories?: (google.ads.admanager.v1.ITaxonomyCategory[]|null);

                    /** ListTaxonomyCategoriesResponse nextPageToken */
                    nextPageToken?: (string|null);

                    /** ListTaxonomyCategoriesResponse totalSize */
                    totalSize?: (number|null);
                }

                /** Represents a ListTaxonomyCategoriesResponse. */
                class ListTaxonomyCategoriesResponse implements IListTaxonomyCategoriesResponse {

                    /**
                     * Constructs a new ListTaxonomyCategoriesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IListTaxonomyCategoriesResponse);

                    /** ListTaxonomyCategoriesResponse taxonomyCategories. */
                    public taxonomyCategories: google.ads.admanager.v1.ITaxonomyCategory[];

                    /** ListTaxonomyCategoriesResponse nextPageToken. */
                    public nextPageToken: string;

                    /** ListTaxonomyCategoriesResponse totalSize. */
                    public totalSize: number;

                    /**
                     * Creates a new ListTaxonomyCategoriesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListTaxonomyCategoriesResponse instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IListTaxonomyCategoriesResponse): google.ads.admanager.v1.ListTaxonomyCategoriesResponse;

                    /**
                     * Encodes the specified ListTaxonomyCategoriesResponse message. Does not implicitly {@link google.ads.admanager.v1.ListTaxonomyCategoriesResponse.verify|verify} messages.
                     * @param message ListTaxonomyCategoriesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IListTaxonomyCategoriesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListTaxonomyCategoriesResponse message, length delimited. Does not implicitly {@link google.ads.admanager.v1.ListTaxonomyCategoriesResponse.verify|verify} messages.
                     * @param message ListTaxonomyCategoriesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IListTaxonomyCategoriesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListTaxonomyCategoriesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTaxonomyCategoriesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.ListTaxonomyCategoriesResponse;

                    /**
                     * Decodes a ListTaxonomyCategoriesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTaxonomyCategoriesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.ListTaxonomyCategoriesResponse;

                    /**
                     * Verifies a ListTaxonomyCategoriesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListTaxonomyCategoriesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTaxonomyCategoriesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.ListTaxonomyCategoriesResponse;

                    /**
                     * Creates a plain object from a ListTaxonomyCategoriesResponse message. Also converts values to other types if specified.
                     * @param message ListTaxonomyCategoriesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.ListTaxonomyCategoriesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListTaxonomyCategoriesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListTaxonomyCategoriesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Team. */
                interface ITeam {

                    /** Team name */
                    name?: (string|null);

                    /** Team teamId */
                    teamId?: (number|Long|string|null);
                }

                /** Represents a Team. */
                class Team implements ITeam {

                    /**
                     * Constructs a new Team.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.ITeam);

                    /** Team name. */
                    public name: string;

                    /** Team teamId. */
                    public teamId: (number|Long|string);

                    /**
                     * Creates a new Team instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Team instance
                     */
                    public static create(properties?: google.ads.admanager.v1.ITeam): google.ads.admanager.v1.Team;

                    /**
                     * Encodes the specified Team message. Does not implicitly {@link google.ads.admanager.v1.Team.verify|verify} messages.
                     * @param message Team message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.ITeam, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Team message, length delimited. Does not implicitly {@link google.ads.admanager.v1.Team.verify|verify} messages.
                     * @param message Team message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.ITeam, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Team message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Team
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.Team;

                    /**
                     * Decodes a Team message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Team
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.Team;

                    /**
                     * Verifies a Team message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Team message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Team
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.Team;

                    /**
                     * Creates a plain object from a Team message. Also converts values to other types if specified.
                     * @param message Team
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.Team, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Team to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Team
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a User. */
                interface IUser {

                    /** User name */
                    name?: (string|null);

                    /** User userId */
                    userId?: (number|Long|string|null);

                    /** User displayName */
                    displayName?: (string|null);

                    /** User email */
                    email?: (string|null);

                    /** User role */
                    role?: (string|null);

                    /** User active */
                    active?: (boolean|null);

                    /** User externalId */
                    externalId?: (string|null);

                    /** User serviceAccount */
                    serviceAccount?: (boolean|null);

                    /** User ordersUiLocalTimeZone */
                    ordersUiLocalTimeZone?: (string|null);
                }

                /** Represents a User. */
                class User implements IUser {

                    /**
                     * Constructs a new User.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IUser);

                    /** User name. */
                    public name: string;

                    /** User userId. */
                    public userId: (number|Long|string);

                    /** User displayName. */
                    public displayName: string;

                    /** User email. */
                    public email: string;

                    /** User role. */
                    public role: string;

                    /** User active. */
                    public active: boolean;

                    /** User externalId. */
                    public externalId: string;

                    /** User serviceAccount. */
                    public serviceAccount: boolean;

                    /** User ordersUiLocalTimeZone. */
                    public ordersUiLocalTimeZone: string;

                    /**
                     * Creates a new User instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns User instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IUser): google.ads.admanager.v1.User;

                    /**
                     * Encodes the specified User message. Does not implicitly {@link google.ads.admanager.v1.User.verify|verify} messages.
                     * @param message User message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IUser, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified User message, length delimited. Does not implicitly {@link google.ads.admanager.v1.User.verify|verify} messages.
                     * @param message User message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IUser, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a User message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns User
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.User;

                    /**
                     * Decodes a User message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns User
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.User;

                    /**
                     * Verifies a User message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a User message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns User
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.User;

                    /**
                     * Creates a plain object from a User message. Also converts values to other types if specified.
                     * @param message User
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.User, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this User to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for User
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Represents a UserService */
                class UserService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new UserService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new UserService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): UserService;

                    /**
                     * Calls GetUser.
                     * @param request GetUserRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and User
                     */
                    public getUser(request: google.ads.admanager.v1.IGetUserRequest, callback: google.ads.admanager.v1.UserService.GetUserCallback): void;

                    /**
                     * Calls GetUser.
                     * @param request GetUserRequest message or plain object
                     * @returns Promise
                     */
                    public getUser(request: google.ads.admanager.v1.IGetUserRequest): Promise<google.ads.admanager.v1.User>;
                }

                namespace UserService {

                    /**
                     * Callback as used by {@link google.ads.admanager.v1.UserService|getUser}.
                     * @param error Error, if any
                     * @param [response] User
                     */
                    type GetUserCallback = (error: (Error|null), response?: google.ads.admanager.v1.User) => void;
                }

                /** Properties of a GetUserRequest. */
                interface IGetUserRequest {

                    /** GetUserRequest name */
                    name?: (string|null);
                }

                /** Represents a GetUserRequest. */
                class GetUserRequest implements IGetUserRequest {

                    /**
                     * Constructs a new GetUserRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.ads.admanager.v1.IGetUserRequest);

                    /** GetUserRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetUserRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetUserRequest instance
                     */
                    public static create(properties?: google.ads.admanager.v1.IGetUserRequest): google.ads.admanager.v1.GetUserRequest;

                    /**
                     * Encodes the specified GetUserRequest message. Does not implicitly {@link google.ads.admanager.v1.GetUserRequest.verify|verify} messages.
                     * @param message GetUserRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.ads.admanager.v1.IGetUserRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetUserRequest message, length delimited. Does not implicitly {@link google.ads.admanager.v1.GetUserRequest.verify|verify} messages.
                     * @param message GetUserRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.ads.admanager.v1.IGetUserRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetUserRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetUserRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.ads.admanager.v1.GetUserRequest;

                    /**
                     * Decodes a GetUserRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetUserRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.ads.admanager.v1.GetUserRequest;

                    /**
                     * Verifies a GetUserRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetUserRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetUserRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.ads.admanager.v1.GetUserRequest;

                    /**
                     * Creates a plain object from a GetUserRequest message. Also converts values to other types if specified.
                     * @param message GetUserRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.ads.admanager.v1.GetUserRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetUserRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetUserRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }
        }
    }

    /** Namespace api. */
    namespace api {

        /** FieldBehavior enum. */
        enum FieldBehavior {
            FIELD_BEHAVIOR_UNSPECIFIED = 0,
            OPTIONAL = 1,
            REQUIRED = 2,
            OUTPUT_ONLY = 3,
            INPUT_ONLY = 4,
            IMMUTABLE = 5,
            UNORDERED_LIST = 6,
            NON_EMPTY_DEFAULT = 7,
            IDENTIFIER = 8
        }

        /** Properties of a ResourceDescriptor. */
        interface IResourceDescriptor {

            /** ResourceDescriptor type */
            type?: (string|null);

            /** ResourceDescriptor pattern */
            pattern?: (string[]|null);

            /** ResourceDescriptor nameField */
            nameField?: (string|null);

            /** ResourceDescriptor history */
            history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null);

            /** ResourceDescriptor plural */
            plural?: (string|null);

            /** ResourceDescriptor singular */
            singular?: (string|null);

            /** ResourceDescriptor style */
            style?: (google.api.ResourceDescriptor.Style[]|null);
        }

        /** Represents a ResourceDescriptor. */
        class ResourceDescriptor implements IResourceDescriptor {

            /**
             * Constructs a new ResourceDescriptor.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceDescriptor);

            /** ResourceDescriptor type. */
            public type: string;

            /** ResourceDescriptor pattern. */
            public pattern: string[];

            /** ResourceDescriptor nameField. */
            public nameField: string;

            /** ResourceDescriptor history. */
            public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History);

            /** ResourceDescriptor plural. */
            public plural: string;

            /** ResourceDescriptor singular. */
            public singular: string;

            /** ResourceDescriptor style. */
            public style: google.api.ResourceDescriptor.Style[];

            /**
             * Creates a new ResourceDescriptor instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceDescriptor instance
             */
            public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor;

            /**
             * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor;

            /**
             * Verifies a ResourceDescriptor message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceDescriptor
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor;

            /**
             * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified.
             * @param message ResourceDescriptor
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceDescriptor to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceDescriptor
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace ResourceDescriptor {

            /** History enum. */
            enum History {
                HISTORY_UNSPECIFIED = 0,
                ORIGINALLY_SINGLE_PATTERN = 1,
                FUTURE_MULTI_PATTERN = 2
            }

            /** Style enum. */
            enum Style {
                STYLE_UNSPECIFIED = 0,
                DECLARATIVE_FRIENDLY = 1
            }
        }

        /** Properties of a ResourceReference. */
        interface IResourceReference {

            /** ResourceReference type */
            type?: (string|null);

            /** ResourceReference childType */
            childType?: (string|null);
        }

        /** Represents a ResourceReference. */
        class ResourceReference implements IResourceReference {

            /**
             * Constructs a new ResourceReference.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceReference);

            /** ResourceReference type. */
            public type: string;

            /** ResourceReference childType. */
            public childType: string;

            /**
             * Creates a new ResourceReference instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceReference instance
             */
            public static create(properties?: google.api.IResourceReference): google.api.ResourceReference;

            /**
             * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference;

            /**
             * Verifies a ResourceReference message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceReference
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceReference;

            /**
             * Creates a plain object from a ResourceReference message. Also converts values to other types if specified.
             * @param message ResourceReference
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceReference to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceReference
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Http. */
        interface IHttp {

            /** Http rules */
            rules?: (google.api.IHttpRule[]|null);

            /** Http fullyDecodeReservedExpansion */
            fullyDecodeReservedExpansion?: (boolean|null);
        }

        /** Represents a Http. */
        class Http implements IHttp {

            /**
             * Constructs a new Http.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttp);

            /** Http rules. */
            public rules: google.api.IHttpRule[];

            /** Http fullyDecodeReservedExpansion. */
            public fullyDecodeReservedExpansion: boolean;

            /**
             * Creates a new Http instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Http instance
             */
            public static create(properties?: google.api.IHttp): google.api.Http;

            /**
             * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Http message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http;

            /**
             * Decodes a Http message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http;

            /**
             * Verifies a Http message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Http message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Http
             */
            public static fromObject(object: { [k: string]: any }): google.api.Http;

            /**
             * Creates a plain object from a Http message. Also converts values to other types if specified.
             * @param message Http
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Http to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Http
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a HttpRule. */
        interface IHttpRule {

            /** HttpRule selector */
            selector?: (string|null);

            /** HttpRule get */
            get?: (string|null);

            /** HttpRule put */
            put?: (string|null);

            /** HttpRule post */
            post?: (string|null);

            /** HttpRule delete */
            "delete"?: (string|null);

            /** HttpRule patch */
            patch?: (string|null);

            /** HttpRule custom */
            custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body */
            body?: (string|null);

            /** HttpRule responseBody */
            responseBody?: (string|null);

            /** HttpRule additionalBindings */
            additionalBindings?: (google.api.IHttpRule[]|null);
        }

        /** Represents a HttpRule. */
        class HttpRule implements IHttpRule {

            /**
             * Constructs a new HttpRule.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttpRule);

            /** HttpRule selector. */
            public selector: string;

            /** HttpRule get. */
            public get?: (string|null);

            /** HttpRule put. */
            public put?: (string|null);

            /** HttpRule post. */
            public post?: (string|null);

            /** HttpRule delete. */
            public delete?: (string|null);

            /** HttpRule patch. */
            public patch?: (string|null);

            /** HttpRule custom. */
            public custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body. */
            public body: string;

            /** HttpRule responseBody. */
            public responseBody: string;

            /** HttpRule additionalBindings. */
            public additionalBindings: google.api.IHttpRule[];

            /** HttpRule pattern. */
            public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom");

            /**
             * Creates a new HttpRule instance using the specified properties.
             * @param [properties] Properties to set
             * @returns HttpRule instance
             */
            public static create(properties?: google.api.IHttpRule): google.api.HttpRule;

            /**
             * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a HttpRule message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule;

            /**
             * Decodes a HttpRule message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule;

            /**
             * Verifies a HttpRule message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a HttpRule message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns HttpRule
             */
            public static fromObject(object: { [k: string]: any }): google.api.HttpRule;

            /**
             * Creates a plain object from a HttpRule message. Also converts values to other types if specified.
             * @param message HttpRule
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this HttpRule to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for HttpRule
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CustomHttpPattern. */
        interface ICustomHttpPattern {

            /** CustomHttpPattern kind */
            kind?: (string|null);

            /** CustomHttpPattern path */
            path?: (string|null);
        }

        /** Represents a CustomHttpPattern. */
        class CustomHttpPattern implements ICustomHttpPattern {

            /**
             * Constructs a new CustomHttpPattern.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICustomHttpPattern);

            /** CustomHttpPattern kind. */
            public kind: string;

            /** CustomHttpPattern path. */
            public path: string;

            /**
             * Creates a new CustomHttpPattern instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CustomHttpPattern instance
             */
            public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern;

            /**
             * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern;

            /**
             * Verifies a CustomHttpPattern message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CustomHttpPattern
             */
            public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern;

            /**
             * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified.
             * @param message CustomHttpPattern
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CustomHttpPattern to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CustomHttpPattern
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CommonLanguageSettings. */
        interface ICommonLanguageSettings {

            /** CommonLanguageSettings referenceDocsUri */
            referenceDocsUri?: (string|null);

            /** CommonLanguageSettings destinations */
            destinations?: (google.api.ClientLibraryDestination[]|null);
        }

        /** Represents a CommonLanguageSettings. */
        class CommonLanguageSettings implements ICommonLanguageSettings {

            /**
             * Constructs a new CommonLanguageSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICommonLanguageSettings);

            /** CommonLanguageSettings referenceDocsUri. */
            public referenceDocsUri: string;

            /** CommonLanguageSettings destinations. */
            public destinations: google.api.ClientLibraryDestination[];

            /**
             * Creates a new CommonLanguageSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommonLanguageSettings instance
             */
            public static create(properties?: google.api.ICommonLanguageSettings): google.api.CommonLanguageSettings;

            /**
             * Encodes the specified CommonLanguageSettings message. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommonLanguageSettings message, length delimited. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CommonLanguageSettings;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CommonLanguageSettings;

            /**
             * Verifies a CommonLanguageSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommonLanguageSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommonLanguageSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CommonLanguageSettings;

            /**
             * Creates a plain object from a CommonLanguageSettings message. Also converts values to other types if specified.
             * @param message CommonLanguageSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CommonLanguageSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommonLanguageSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CommonLanguageSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ClientLibrarySettings. */
        interface IClientLibrarySettings {

            /** ClientLibrarySettings version */
            version?: (string|null);

            /** ClientLibrarySettings launchStage */
            launchStage?: (google.api.LaunchStage|keyof typeof google.api.LaunchStage|null);

            /** ClientLibrarySettings restNumericEnums */
            restNumericEnums?: (boolean|null);

            /** ClientLibrarySettings javaSettings */
            javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings */
            cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings */
            phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings */
            pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings */
            nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings */
            dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings */
            rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings */
            goSettings?: (google.api.IGoSettings|null);
        }

        /** Represents a ClientLibrarySettings. */
        class ClientLibrarySettings implements IClientLibrarySettings {

            /**
             * Constructs a new ClientLibrarySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IClientLibrarySettings);

            /** ClientLibrarySettings version. */
            public version: string;

            /** ClientLibrarySettings launchStage. */
            public launchStage: (google.api.LaunchStage|keyof typeof google.api.LaunchStage);

            /** ClientLibrarySettings restNumericEnums. */
            public restNumericEnums: boolean;

            /** ClientLibrarySettings javaSettings. */
            public javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings. */
            public cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings. */
            public phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings. */
            public pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings. */
            public nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings. */
            public dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings. */
            public rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings. */
            public goSettings?: (google.api.IGoSettings|null);

            /**
             * Creates a new ClientLibrarySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ClientLibrarySettings instance
             */
            public static create(properties?: google.api.IClientLibrarySettings): google.api.ClientLibrarySettings;

            /**
             * Encodes the specified ClientLibrarySettings message. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ClientLibrarySettings message, length delimited. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ClientLibrarySettings;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ClientLibrarySettings;

            /**
             * Verifies a ClientLibrarySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ClientLibrarySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ClientLibrarySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.ClientLibrarySettings;

            /**
             * Creates a plain object from a ClientLibrarySettings message. Also converts values to other types if specified.
             * @param message ClientLibrarySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ClientLibrarySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ClientLibrarySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ClientLibrarySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Publishing. */
        interface IPublishing {

            /** Publishing methodSettings */
            methodSettings?: (google.api.IMethodSettings[]|null);

            /** Publishing newIssueUri */
            newIssueUri?: (string|null);

            /** Publishing documentationUri */
            documentationUri?: (string|null);

            /** Publishing apiShortName */
            apiShortName?: (string|null);

            /** Publishing githubLabel */
            githubLabel?: (string|null);

            /** Publishing codeownerGithubTeams */
            codeownerGithubTeams?: (string[]|null);

            /** Publishing docTagPrefix */
            docTagPrefix?: (string|null);

            /** Publishing organization */
            organization?: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization|null);

            /** Publishing librarySettings */
            librarySettings?: (google.api.IClientLibrarySettings[]|null);

            /** Publishing protoReferenceDocumentationUri */
            protoReferenceDocumentationUri?: (string|null);
        }

        /** Represents a Publishing. */
        class Publishing implements IPublishing {

            /**
             * Constructs a new Publishing.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPublishing);

            /** Publishing methodSettings. */
            public methodSettings: google.api.IMethodSettings[];

            /** Publishing newIssueUri. */
            public newIssueUri: string;

            /** Publishing documentationUri. */
            public documentationUri: string;

            /** Publishing apiShortName. */
            public apiShortName: string;

            /** Publishing githubLabel. */
            public githubLabel: string;

            /** Publishing codeownerGithubTeams. */
            public codeownerGithubTeams: string[];

            /** Publishing docTagPrefix. */
            public docTagPrefix: string;

            /** Publishing organization. */
            public organization: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization);

            /** Publishing librarySettings. */
            public librarySettings: google.api.IClientLibrarySettings[];

            /** Publishing protoReferenceDocumentationUri. */
            public protoReferenceDocumentationUri: string;

            /**
             * Creates a new Publishing instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Publishing instance
             */
            public static create(properties?: google.api.IPublishing): google.api.Publishing;

            /**
             * Encodes the specified Publishing message. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Publishing message, length delimited. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Publishing message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Publishing;

            /**
             * Decodes a Publishing message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Publishing;

            /**
             * Verifies a Publishing message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Publishing message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Publishing
             */
            public static fromObject(object: { [k: string]: any }): google.api.Publishing;

            /**
             * Creates a plain object from a Publishing message. Also converts values to other types if specified.
             * @param message Publishing
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Publishing, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Publishing to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Publishing
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a JavaSettings. */
        interface IJavaSettings {

            /** JavaSettings libraryPackage */
            libraryPackage?: (string|null);

            /** JavaSettings serviceClassNames */
            serviceClassNames?: ({ [k: string]: string }|null);

            /** JavaSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a JavaSettings. */
        class JavaSettings implements IJavaSettings {

            /**
             * Constructs a new JavaSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IJavaSettings);

            /** JavaSettings libraryPackage. */
            public libraryPackage: string;

            /** JavaSettings serviceClassNames. */
            public serviceClassNames: { [k: string]: string };

            /** JavaSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new JavaSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns JavaSettings instance
             */
            public static create(properties?: google.api.IJavaSettings): google.api.JavaSettings;

            /**
             * Encodes the specified JavaSettings message. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified JavaSettings message, length delimited. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.JavaSettings;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.JavaSettings;

            /**
             * Verifies a JavaSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a JavaSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns JavaSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.JavaSettings;

            /**
             * Creates a plain object from a JavaSettings message. Also converts values to other types if specified.
             * @param message JavaSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.JavaSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this JavaSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for JavaSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CppSettings. */
        interface ICppSettings {

            /** CppSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a CppSettings. */
        class CppSettings implements ICppSettings {

            /**
             * Constructs a new CppSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICppSettings);

            /** CppSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new CppSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CppSettings instance
             */
            public static create(properties?: google.api.ICppSettings): google.api.CppSettings;

            /**
             * Encodes the specified CppSettings message. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CppSettings message, length delimited. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CppSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CppSettings;

            /**
             * Decodes a CppSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CppSettings;

            /**
             * Verifies a CppSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CppSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CppSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CppSettings;

            /**
             * Creates a plain object from a CppSettings message. Also converts values to other types if specified.
             * @param message CppSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CppSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CppSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CppSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PhpSettings. */
        interface IPhpSettings {

            /** PhpSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a PhpSettings. */
        class PhpSettings implements IPhpSettings {

            /**
             * Constructs a new PhpSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPhpSettings);

            /** PhpSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new PhpSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PhpSettings instance
             */
            public static create(properties?: google.api.IPhpSettings): google.api.PhpSettings;

            /**
             * Encodes the specified PhpSettings message. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PhpSettings message, length delimited. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PhpSettings;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PhpSettings;

            /**
             * Verifies a PhpSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PhpSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PhpSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PhpSettings;

            /**
             * Creates a plain object from a PhpSettings message. Also converts values to other types if specified.
             * @param message PhpSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PhpSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PhpSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PhpSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PythonSettings. */
        interface IPythonSettings {

            /** PythonSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a PythonSettings. */
        class PythonSettings implements IPythonSettings {

            /**
             * Constructs a new PythonSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPythonSettings);

            /** PythonSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new PythonSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PythonSettings instance
             */
            public static create(properties?: google.api.IPythonSettings): google.api.PythonSettings;

            /**
             * Encodes the specified PythonSettings message. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PythonSettings message, length delimited. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings;

            /**
             * Verifies a PythonSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PythonSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PythonSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PythonSettings;

            /**
             * Creates a plain object from a PythonSettings message. Also converts values to other types if specified.
             * @param message PythonSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PythonSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PythonSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PythonSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a NodeSettings. */
        interface INodeSettings {

            /** NodeSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a NodeSettings. */
        class NodeSettings implements INodeSettings {

            /**
             * Constructs a new NodeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.INodeSettings);

            /** NodeSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new NodeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns NodeSettings instance
             */
            public static create(properties?: google.api.INodeSettings): google.api.NodeSettings;

            /**
             * Encodes the specified NodeSettings message. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified NodeSettings message, length delimited. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.NodeSettings;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.NodeSettings;

            /**
             * Verifies a NodeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a NodeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns NodeSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.NodeSettings;

            /**
             * Creates a plain object from a NodeSettings message. Also converts values to other types if specified.
             * @param message NodeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.NodeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this NodeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for NodeSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DotnetSettings. */
        interface IDotnetSettings {

            /** DotnetSettings common */
            common?: (google.api.ICommonLanguageSettings|null);

            /** DotnetSettings renamedServices */
            renamedServices?: ({ [k: string]: string }|null);

            /** DotnetSettings renamedResources */
            renamedResources?: ({ [k: string]: string }|null);

            /** DotnetSettings ignoredResources */
            ignoredResources?: (string[]|null);

            /** DotnetSettings forcedNamespaceAliases */
            forcedNamespaceAliases?: (string[]|null);

            /** DotnetSettings handwrittenSignatures */
            handwrittenSignatures?: (string[]|null);
        }

        /** Represents a DotnetSettings. */
        class DotnetSettings implements IDotnetSettings {

            /**
             * Constructs a new DotnetSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IDotnetSettings);

            /** DotnetSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /** DotnetSettings renamedServices. */
            public renamedServices: { [k: string]: string };

            /** DotnetSettings renamedResources. */
            public renamedResources: { [k: string]: string };

            /** DotnetSettings ignoredResources. */
            public ignoredResources: string[];

            /** DotnetSettings forcedNamespaceAliases. */
            public forcedNamespaceAliases: string[];

            /** DotnetSettings handwrittenSignatures. */
            public handwrittenSignatures: string[];

            /**
             * Creates a new DotnetSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DotnetSettings instance
             */
            public static create(properties?: google.api.IDotnetSettings): google.api.DotnetSettings;

            /**
             * Encodes the specified DotnetSettings message. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DotnetSettings message, length delimited. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.DotnetSettings;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.DotnetSettings;

            /**
             * Verifies a DotnetSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DotnetSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DotnetSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.DotnetSettings;

            /**
             * Creates a plain object from a DotnetSettings message. Also converts values to other types if specified.
             * @param message DotnetSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.DotnetSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DotnetSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DotnetSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a RubySettings. */
        interface IRubySettings {

            /** RubySettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a RubySettings. */
        class RubySettings implements IRubySettings {

            /**
             * Constructs a new RubySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IRubySettings);

            /** RubySettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new RubySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RubySettings instance
             */
            public static create(properties?: google.api.IRubySettings): google.api.RubySettings;

            /**
             * Encodes the specified RubySettings message. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RubySettings message, length delimited. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RubySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.RubySettings;

            /**
             * Decodes a RubySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.RubySettings;

            /**
             * Verifies a RubySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RubySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RubySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.RubySettings;

            /**
             * Creates a plain object from a RubySettings message. Also converts values to other types if specified.
             * @param message RubySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.RubySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RubySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for RubySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a GoSettings. */
        interface IGoSettings {

            /** GoSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a GoSettings. */
        class GoSettings implements IGoSettings {

            /**
             * Constructs a new GoSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IGoSettings);

            /** GoSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new GoSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GoSettings instance
             */
            public static create(properties?: google.api.IGoSettings): google.api.GoSettings;

            /**
             * Encodes the specified GoSettings message. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GoSettings message, length delimited. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GoSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.GoSettings;

            /**
             * Decodes a GoSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.GoSettings;

            /**
             * Verifies a GoSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GoSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GoSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.GoSettings;

            /**
             * Creates a plain object from a GoSettings message. Also converts values to other types if specified.
             * @param message GoSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.GoSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GoSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GoSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodSettings. */
        interface IMethodSettings {

            /** MethodSettings selector */
            selector?: (string|null);

            /** MethodSettings longRunning */
            longRunning?: (google.api.MethodSettings.ILongRunning|null);

            /** MethodSettings autoPopulatedFields */
            autoPopulatedFields?: (string[]|null);
        }

        /** Represents a MethodSettings. */
        class MethodSettings implements IMethodSettings {

            /**
             * Constructs a new MethodSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IMethodSettings);

            /** MethodSettings selector. */
            public selector: string;

            /** MethodSettings longRunning. */
            public longRunning?: (google.api.MethodSettings.ILongRunning|null);

            /** MethodSettings autoPopulatedFields. */
            public autoPopulatedFields: string[];

            /**
             * Creates a new MethodSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodSettings instance
             */
            public static create(properties?: google.api.IMethodSettings): google.api.MethodSettings;

            /**
             * Encodes the specified MethodSettings message. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodSettings message, length delimited. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings;

            /**
             * Verifies a MethodSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.MethodSettings;

            /**
             * Creates a plain object from a MethodSettings message. Also converts values to other types if specified.
             * @param message MethodSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.MethodSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodSettings {

            /** Properties of a LongRunning. */
            interface ILongRunning {

                /** LongRunning initialPollDelay */
                initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier */
                pollDelayMultiplier?: (number|null);

                /** LongRunning maxPollDelay */
                maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout */
                totalPollTimeout?: (google.protobuf.IDuration|null);
            }

            /** Represents a LongRunning. */
            class LongRunning implements ILongRunning {

                /**
                 * Constructs a new LongRunning.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.api.MethodSettings.ILongRunning);

                /** LongRunning initialPollDelay. */
                public initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier. */
                public pollDelayMultiplier: number;

                /** LongRunning maxPollDelay. */
                public maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout. */
                public totalPollTimeout?: (google.protobuf.IDuration|null);

                /**
                 * Creates a new LongRunning instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LongRunning instance
                 */
                public static create(properties?: google.api.MethodSettings.ILongRunning): google.api.MethodSettings.LongRunning;

                /**
                 * Encodes the specified LongRunning message. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LongRunning message, length delimited. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings.LongRunning;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings.LongRunning;

                /**
                 * Verifies a LongRunning message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a LongRunning message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LongRunning
                 */
                public static fromObject(object: { [k: string]: any }): google.api.MethodSettings.LongRunning;

                /**
                 * Creates a plain object from a LongRunning message. Also converts values to other types if specified.
                 * @param message LongRunning
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.api.MethodSettings.LongRunning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LongRunning to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LongRunning
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** ClientLibraryOrganization enum. */
        enum ClientLibraryOrganization {
            CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0,
            CLOUD = 1,
            ADS = 2,
            PHOTOS = 3,
            STREET_VIEW = 4,
            SHOPPING = 5,
            GEO = 6,
            GENERATIVE_AI = 7
        }

        /** ClientLibraryDestination enum. */
        enum ClientLibraryDestination {
            CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0,
            GITHUB = 10,
            PACKAGE_MANAGER = 20
        }

        /** LaunchStage enum. */
        enum LaunchStage {
            LAUNCH_STAGE_UNSPECIFIED = 0,
            UNIMPLEMENTED = 6,
            PRELAUNCH = 7,
            EARLY_ACCESS = 1,
            ALPHA = 2,
            BETA = 3,
            GA = 4,
            DEPRECATED = 5
        }
    }

    /** Namespace protobuf. */
    namespace protobuf {

        /** Properties of a FileDescriptorSet. */
        interface IFileDescriptorSet {

            /** FileDescriptorSet file */
            file?: (google.protobuf.IFileDescriptorProto[]|null);
        }

        /** Represents a FileDescriptorSet. */
        class FileDescriptorSet implements IFileDescriptorSet {

            /**
             * Constructs a new FileDescriptorSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorSet);

            /** FileDescriptorSet file. */
            public file: google.protobuf.IFileDescriptorProto[];

            /**
             * Creates a new FileDescriptorSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorSet instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet;

            /**
             * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorSet;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorSet;

            /**
             * Verifies a FileDescriptorSet message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet;

            /**
             * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified.
             * @param message FileDescriptorSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Edition enum. */
        enum Edition {
            EDITION_UNKNOWN = 0,
            EDITION_PROTO2 = 998,
            EDITION_PROTO3 = 999,
            EDITION_2023 = 1000,
            EDITION_2024 = 1001,
            EDITION_1_TEST_ONLY = 1,
            EDITION_2_TEST_ONLY = 2,
            EDITION_99997_TEST_ONLY = 99997,
            EDITION_99998_TEST_ONLY = 99998,
            EDITION_99999_TEST_ONLY = 99999,
            EDITION_MAX = 2147483647
        }

        /** Properties of a FileDescriptorProto. */
        interface IFileDescriptorProto {

            /** FileDescriptorProto name */
            name?: (string|null);

            /** FileDescriptorProto package */
            "package"?: (string|null);

            /** FileDescriptorProto dependency */
            dependency?: (string[]|null);

            /** FileDescriptorProto publicDependency */
            publicDependency?: (number[]|null);

            /** FileDescriptorProto weakDependency */
            weakDependency?: (number[]|null);

            /** FileDescriptorProto messageType */
            messageType?: (google.protobuf.IDescriptorProto[]|null);

            /** FileDescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** FileDescriptorProto service */
            service?: (google.protobuf.IServiceDescriptorProto[]|null);

            /** FileDescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** FileDescriptorProto options */
            options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo */
            sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax */
            syntax?: (string|null);

            /** FileDescriptorProto edition */
            edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);
        }

        /** Represents a FileDescriptorProto. */
        class FileDescriptorProto implements IFileDescriptorProto {

            /**
             * Constructs a new FileDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorProto);

            /** FileDescriptorProto name. */
            public name: string;

            /** FileDescriptorProto package. */
            public package: string;

            /** FileDescriptorProto dependency. */
            public dependency: string[];

            /** FileDescriptorProto publicDependency. */
            public publicDependency: number[];

            /** FileDescriptorProto weakDependency. */
            public weakDependency: number[];

            /** FileDescriptorProto messageType. */
            public messageType: google.protobuf.IDescriptorProto[];

            /** FileDescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** FileDescriptorProto service. */
            public service: google.protobuf.IServiceDescriptorProto[];

            /** FileDescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** FileDescriptorProto options. */
            public options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo. */
            public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax. */
            public syntax: string;

            /** FileDescriptorProto edition. */
            public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * Creates a new FileDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto;

            /**
             * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorProto;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorProto;

            /**
             * Verifies a FileDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto;

            /**
             * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified.
             * @param message FileDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DescriptorProto. */
        interface IDescriptorProto {

            /** DescriptorProto name */
            name?: (string|null);

            /** DescriptorProto field */
            field?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto nestedType */
            nestedType?: (google.protobuf.IDescriptorProto[]|null);

            /** DescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** DescriptorProto extensionRange */
            extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null);

            /** DescriptorProto oneofDecl */
            oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null);

            /** DescriptorProto options */
            options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange */
            reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null);

            /** DescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents a DescriptorProto. */
        class DescriptorProto implements IDescriptorProto {

            /**
             * Constructs a new DescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDescriptorProto);

            /** DescriptorProto name. */
            public name: string;

            /** DescriptorProto field. */
            public field: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto nestedType. */
            public nestedType: google.protobuf.IDescriptorProto[];

            /** DescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** DescriptorProto extensionRange. */
            public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[];

            /** DescriptorProto oneofDecl. */
            public oneofDecl: google.protobuf.IOneofDescriptorProto[];

            /** DescriptorProto options. */
            public options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange. */
            public reservedRange: google.protobuf.DescriptorProto.IReservedRange[];

            /** DescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new DescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescriptorProto instance
             */
            public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto;

            /**
             * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto;

            /**
             * Verifies a DescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto;

            /**
             * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified.
             * @param message DescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace DescriptorProto {

            /** Properties of an ExtensionRange. */
            interface IExtensionRange {

                /** ExtensionRange start */
                start?: (number|null);

                /** ExtensionRange end */
                end?: (number|null);

                /** ExtensionRange options */
                options?: (google.protobuf.IExtensionRangeOptions|null);
            }

            /** Represents an ExtensionRange. */
            class ExtensionRange implements IExtensionRange {

                /**
                 * Constructs a new ExtensionRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange);

                /** ExtensionRange start. */
                public start: number;

                /** ExtensionRange end. */
                public end: number;

                /** ExtensionRange options. */
                public options?: (google.protobuf.IExtensionRangeOptions|null);

                /**
                 * Creates a new ExtensionRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ExtensionRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Verifies an ExtensionRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ExtensionRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified.
                 * @param message ExtensionRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ExtensionRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ExtensionRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReservedRange. */
            interface IReservedRange {

                /** ReservedRange start */
                start?: (number|null);

                /** ReservedRange end */
                end?: (number|null);
            }

            /** Represents a ReservedRange. */
            class ReservedRange implements IReservedRange {

                /**
                 * Constructs a new ReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IReservedRange);

                /** ReservedRange start. */
                public start: number;

                /** ReservedRange end. */
                public end: number;

                /**
                 * Creates a new ReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReservedRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Verifies a ReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Creates a plain object from a ReservedRange message. Also converts values to other types if specified.
                 * @param message ReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an ExtensionRangeOptions. */
        interface IExtensionRangeOptions {

            /** ExtensionRangeOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ExtensionRangeOptions declaration */
            declaration?: (google.protobuf.ExtensionRangeOptions.IDeclaration[]|null);

            /** ExtensionRangeOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification */
            verification?: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState|null);
        }

        /** Represents an ExtensionRangeOptions. */
        class ExtensionRangeOptions implements IExtensionRangeOptions {

            /**
             * Constructs a new ExtensionRangeOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IExtensionRangeOptions);

            /** ExtensionRangeOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /** ExtensionRangeOptions declaration. */
            public declaration: google.protobuf.ExtensionRangeOptions.IDeclaration[];

            /** ExtensionRangeOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification. */
            public verification: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState);

            /**
             * Creates a new ExtensionRangeOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExtensionRangeOptions instance
             */
            public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions;

            /**
             * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions;

            /**
             * Verifies an ExtensionRangeOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExtensionRangeOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions;

            /**
             * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified.
             * @param message ExtensionRangeOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExtensionRangeOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ExtensionRangeOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace ExtensionRangeOptions {

            /** Properties of a Declaration. */
            interface IDeclaration {

                /** Declaration number */
                number?: (number|null);

                /** Declaration fullName */
                fullName?: (string|null);

                /** Declaration type */
                type?: (string|null);

                /** Declaration reserved */
                reserved?: (boolean|null);

                /** Declaration repeated */
                repeated?: (boolean|null);
            }

            /** Represents a Declaration. */
            class Declaration implements IDeclaration {

                /**
                 * Constructs a new Declaration.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration);

                /** Declaration number. */
                public number: number;

                /** Declaration fullName. */
                public fullName: string;

                /** Declaration type. */
                public type: string;

                /** Declaration reserved. */
                public reserved: boolean;

                /** Declaration repeated. */
                public repeated: boolean;

                /**
                 * Creates a new Declaration instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Declaration instance
                 */
                public static create(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Encodes the specified Declaration message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Declaration message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Declaration message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Declaration
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Decodes a Declaration message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Declaration
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Verifies a Declaration message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Declaration message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Declaration
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Creates a plain object from a Declaration message. Also converts values to other types if specified.
                 * @param message Declaration
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.ExtensionRangeOptions.Declaration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Declaration to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Declaration
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** VerificationState enum. */
            enum VerificationState {
                DECLARATION = 0,
                UNVERIFIED = 1
            }
        }

        /** Properties of a FieldDescriptorProto. */
        interface IFieldDescriptorProto {

            /** FieldDescriptorProto name */
            name?: (string|null);

            /** FieldDescriptorProto number */
            number?: (number|null);

            /** FieldDescriptorProto label */
            label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null);

            /** FieldDescriptorProto type */
            type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type|null);

            /** FieldDescriptorProto typeName */
            typeName?: (string|null);

            /** FieldDescriptorProto extendee */
            extendee?: (string|null);

            /** FieldDescriptorProto defaultValue */
            defaultValue?: (string|null);

            /** FieldDescriptorProto oneofIndex */
            oneofIndex?: (number|null);

            /** FieldDescriptorProto jsonName */
            jsonName?: (string|null);

            /** FieldDescriptorProto options */
            options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional */
            proto3Optional?: (boolean|null);
        }

        /** Represents a FieldDescriptorProto. */
        class FieldDescriptorProto implements IFieldDescriptorProto {

            /**
             * Constructs a new FieldDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldDescriptorProto);

            /** FieldDescriptorProto name. */
            public name: string;

            /** FieldDescriptorProto number. */
            public number: number;

            /** FieldDescriptorProto label. */
            public label: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label);

            /** FieldDescriptorProto type. */
            public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type);

            /** FieldDescriptorProto typeName. */
            public typeName: string;

            /** FieldDescriptorProto extendee. */
            public extendee: string;

            /** FieldDescriptorProto defaultValue. */
            public defaultValue: string;

            /** FieldDescriptorProto oneofIndex. */
            public oneofIndex: number;

            /** FieldDescriptorProto jsonName. */
            public jsonName: string;

            /** FieldDescriptorProto options. */
            public options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional. */
            public proto3Optional: boolean;

            /**
             * Creates a new FieldDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto;

            /**
             * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldDescriptorProto;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldDescriptorProto;

            /**
             * Verifies a FieldDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto;

            /**
             * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified.
             * @param message FieldDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldDescriptorProto {

            /** Type enum. */
            enum Type {
                TYPE_DOUBLE = 1,
                TYPE_FLOAT = 2,
                TYPE_INT64 = 3,
                TYPE_UINT64 = 4,
                TYPE_INT32 = 5,
                TYPE_FIXED64 = 6,
                TYPE_FIXED32 = 7,
                TYPE_BOOL = 8,
                TYPE_STRING = 9,
                TYPE_GROUP = 10,
                TYPE_MESSAGE = 11,
                TYPE_BYTES = 12,
                TYPE_UINT32 = 13,
                TYPE_ENUM = 14,
                TYPE_SFIXED32 = 15,
                TYPE_SFIXED64 = 16,
                TYPE_SINT32 = 17,
                TYPE_SINT64 = 18
            }

            /** Label enum. */
            enum Label {
                LABEL_OPTIONAL = 1,
                LABEL_REPEATED = 3,
                LABEL_REQUIRED = 2
            }
        }

        /** Properties of an OneofDescriptorProto. */
        interface IOneofDescriptorProto {

            /** OneofDescriptorProto name */
            name?: (string|null);

            /** OneofDescriptorProto options */
            options?: (google.protobuf.IOneofOptions|null);
        }

        /** Represents an OneofDescriptorProto. */
        class OneofDescriptorProto implements IOneofDescriptorProto {

            /**
             * Constructs a new OneofDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofDescriptorProto);

            /** OneofDescriptorProto name. */
            public name: string;

            /** OneofDescriptorProto options. */
            public options?: (google.protobuf.IOneofOptions|null);

            /**
             * Creates a new OneofDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto;

            /**
             * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofDescriptorProto;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofDescriptorProto;

            /**
             * Verifies an OneofDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto;

            /**
             * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified.
             * @param message OneofDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumDescriptorProto. */
        interface IEnumDescriptorProto {

            /** EnumDescriptorProto name */
            name?: (string|null);

            /** EnumDescriptorProto value */
            value?: (google.protobuf.IEnumValueDescriptorProto[]|null);

            /** EnumDescriptorProto options */
            options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange */
            reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null);

            /** EnumDescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents an EnumDescriptorProto. */
        class EnumDescriptorProto implements IEnumDescriptorProto {

            /**
             * Constructs a new EnumDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumDescriptorProto);

            /** EnumDescriptorProto name. */
            public name: string;

            /** EnumDescriptorProto value. */
            public value: google.protobuf.IEnumValueDescriptorProto[];

            /** EnumDescriptorProto options. */
            public options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange. */
            public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[];

            /** EnumDescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new EnumDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto;

            /**
             * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto;

            /**
             * Verifies an EnumDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto;

            /**
             * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace EnumDescriptorProto {

            /** Properties of an EnumReservedRange. */
            interface IEnumReservedRange {

                /** EnumReservedRange start */
                start?: (number|null);

                /** EnumReservedRange end */
                end?: (number|null);
            }

            /** Represents an EnumReservedRange. */
            class EnumReservedRange implements IEnumReservedRange {

                /**
                 * Constructs a new EnumReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange);

                /** EnumReservedRange start. */
                public start: number;

                /** EnumReservedRange end. */
                public end: number;

                /**
                 * Creates a new EnumReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EnumReservedRange instance
                 */
                public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Verifies an EnumReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EnumReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified.
                 * @param message EnumReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EnumReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EnumReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an EnumValueDescriptorProto. */
        interface IEnumValueDescriptorProto {

            /** EnumValueDescriptorProto name */
            name?: (string|null);

            /** EnumValueDescriptorProto number */
            number?: (number|null);

            /** EnumValueDescriptorProto options */
            options?: (google.protobuf.IEnumValueOptions|null);
        }

        /** Represents an EnumValueDescriptorProto. */
        class EnumValueDescriptorProto implements IEnumValueDescriptorProto {

            /**
             * Constructs a new EnumValueDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueDescriptorProto);

            /** EnumValueDescriptorProto name. */
            public name: string;

            /** EnumValueDescriptorProto number. */
            public number: number;

            /** EnumValueDescriptorProto options. */
            public options?: (google.protobuf.IEnumValueOptions|null);

            /**
             * Creates a new EnumValueDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto;

            /**
             * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueDescriptorProto;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueDescriptorProto;

            /**
             * Verifies an EnumValueDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto;

            /**
             * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumValueDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceDescriptorProto. */
        interface IServiceDescriptorProto {

            /** ServiceDescriptorProto name */
            name?: (string|null);

            /** ServiceDescriptorProto method */
            method?: (google.protobuf.IMethodDescriptorProto[]|null);

            /** ServiceDescriptorProto options */
            options?: (google.protobuf.IServiceOptions|null);
        }

        /** Represents a ServiceDescriptorProto. */
        class ServiceDescriptorProto implements IServiceDescriptorProto {

            /**
             * Constructs a new ServiceDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceDescriptorProto);

            /** ServiceDescriptorProto name. */
            public name: string;

            /** ServiceDescriptorProto method. */
            public method: google.protobuf.IMethodDescriptorProto[];

            /** ServiceDescriptorProto options. */
            public options?: (google.protobuf.IServiceOptions|null);

            /**
             * Creates a new ServiceDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto;

            /**
             * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceDescriptorProto;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceDescriptorProto;

            /**
             * Verifies a ServiceDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto;

            /**
             * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified.
             * @param message ServiceDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodDescriptorProto. */
        interface IMethodDescriptorProto {

            /** MethodDescriptorProto name */
            name?: (string|null);

            /** MethodDescriptorProto inputType */
            inputType?: (string|null);

            /** MethodDescriptorProto outputType */
            outputType?: (string|null);

            /** MethodDescriptorProto options */
            options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming */
            clientStreaming?: (boolean|null);

            /** MethodDescriptorProto serverStreaming */
            serverStreaming?: (boolean|null);
        }

        /** Represents a MethodDescriptorProto. */
        class MethodDescriptorProto implements IMethodDescriptorProto {

            /**
             * Constructs a new MethodDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodDescriptorProto);

            /** MethodDescriptorProto name. */
            public name: string;

            /** MethodDescriptorProto inputType. */
            public inputType: string;

            /** MethodDescriptorProto outputType. */
            public outputType: string;

            /** MethodDescriptorProto options. */
            public options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming. */
            public clientStreaming: boolean;

            /** MethodDescriptorProto serverStreaming. */
            public serverStreaming: boolean;

            /**
             * Creates a new MethodDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto;

            /**
             * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodDescriptorProto;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodDescriptorProto;

            /**
             * Verifies a MethodDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto;

            /**
             * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified.
             * @param message MethodDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FileOptions. */
        interface IFileOptions {

            /** FileOptions javaPackage */
            javaPackage?: (string|null);

            /** FileOptions javaOuterClassname */
            javaOuterClassname?: (string|null);

            /** FileOptions javaMultipleFiles */
            javaMultipleFiles?: (boolean|null);

            /** FileOptions javaGenerateEqualsAndHash */
            javaGenerateEqualsAndHash?: (boolean|null);

            /** FileOptions javaStringCheckUtf8 */
            javaStringCheckUtf8?: (boolean|null);

            /** FileOptions optimizeFor */
            optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode|null);

            /** FileOptions goPackage */
            goPackage?: (string|null);

            /** FileOptions ccGenericServices */
            ccGenericServices?: (boolean|null);

            /** FileOptions javaGenericServices */
            javaGenericServices?: (boolean|null);

            /** FileOptions pyGenericServices */
            pyGenericServices?: (boolean|null);

            /** FileOptions deprecated */
            deprecated?: (boolean|null);

            /** FileOptions ccEnableArenas */
            ccEnableArenas?: (boolean|null);

            /** FileOptions objcClassPrefix */
            objcClassPrefix?: (string|null);

            /** FileOptions csharpNamespace */
            csharpNamespace?: (string|null);

            /** FileOptions swiftPrefix */
            swiftPrefix?: (string|null);

            /** FileOptions phpClassPrefix */
            phpClassPrefix?: (string|null);

            /** FileOptions phpNamespace */
            phpNamespace?: (string|null);

            /** FileOptions phpMetadataNamespace */
            phpMetadataNamespace?: (string|null);

            /** FileOptions rubyPackage */
            rubyPackage?: (string|null);

            /** FileOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** FileOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FileOptions .google.api.resourceDefinition */
            ".google.api.resourceDefinition"?: (google.api.IResourceDescriptor[]|null);
        }

        /** Represents a FileOptions. */
        class FileOptions implements IFileOptions {

            /**
             * Constructs a new FileOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileOptions);

            /** FileOptions javaPackage. */
            public javaPackage: string;

            /** FileOptions javaOuterClassname. */
            public javaOuterClassname: string;

            /** FileOptions javaMultipleFiles. */
            public javaMultipleFiles: boolean;

            /** FileOptions javaGenerateEqualsAndHash. */
            public javaGenerateEqualsAndHash: boolean;

            /** FileOptions javaStringCheckUtf8. */
            public javaStringCheckUtf8: boolean;

            /** FileOptions optimizeFor. */
            public optimizeFor: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode);

            /** FileOptions goPackage. */
            public goPackage: string;

            /** FileOptions ccGenericServices. */
            public ccGenericServices: boolean;

            /** FileOptions javaGenericServices. */
            public javaGenericServices: boolean;

            /** FileOptions pyGenericServices. */
            public pyGenericServices: boolean;

            /** FileOptions deprecated. */
            public deprecated: boolean;

            /** FileOptions ccEnableArenas. */
            public ccEnableArenas: boolean;

            /** FileOptions objcClassPrefix. */
            public objcClassPrefix: string;

            /** FileOptions csharpNamespace. */
            public csharpNamespace: string;

            /** FileOptions swiftPrefix. */
            public swiftPrefix: string;

            /** FileOptions phpClassPrefix. */
            public phpClassPrefix: string;

            /** FileOptions phpNamespace. */
            public phpNamespace: string;

            /** FileOptions phpMetadataNamespace. */
            public phpMetadataNamespace: string;

            /** FileOptions rubyPackage. */
            public rubyPackage: string;

            /** FileOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** FileOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FileOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileOptions instance
             */
            public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions;

            /**
             * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileOptions;

            /**
             * Decodes a FileOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileOptions;

            /**
             * Verifies a FileOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions;

            /**
             * Creates a plain object from a FileOptions message. Also converts values to other types if specified.
             * @param message FileOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FileOptions {

            /** OptimizeMode enum. */
            enum OptimizeMode {
                SPEED = 1,
                CODE_SIZE = 2,
                LITE_RUNTIME = 3
            }
        }

        /** Properties of a MessageOptions. */
        interface IMessageOptions {

            /** MessageOptions messageSetWireFormat */
            messageSetWireFormat?: (boolean|null);

            /** MessageOptions noStandardDescriptorAccessor */
            noStandardDescriptorAccessor?: (boolean|null);

            /** MessageOptions deprecated */
            deprecated?: (boolean|null);

            /** MessageOptions mapEntry */
            mapEntry?: (boolean|null);

            /** MessageOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** MessageOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** MessageOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MessageOptions .google.api.resource */
            ".google.api.resource"?: (google.api.IResourceDescriptor|null);
        }

        /** Represents a MessageOptions. */
        class MessageOptions implements IMessageOptions {

            /**
             * Constructs a new MessageOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMessageOptions);

            /** MessageOptions messageSetWireFormat. */
            public messageSetWireFormat: boolean;

            /** MessageOptions noStandardDescriptorAccessor. */
            public noStandardDescriptorAccessor: boolean;

            /** MessageOptions deprecated. */
            public deprecated: boolean;

            /** MessageOptions mapEntry. */
            public mapEntry: boolean;

            /** MessageOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** MessageOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** MessageOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MessageOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MessageOptions instance
             */
            public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions;

            /**
             * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MessageOptions;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MessageOptions;

            /**
             * Verifies a MessageOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MessageOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions;

            /**
             * Creates a plain object from a MessageOptions message. Also converts values to other types if specified.
             * @param message MessageOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MessageOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MessageOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldOptions. */
        interface IFieldOptions {

            /** FieldOptions ctype */
            ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null);

            /** FieldOptions packed */
            packed?: (boolean|null);

            /** FieldOptions jstype */
            jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null);

            /** FieldOptions lazy */
            lazy?: (boolean|null);

            /** FieldOptions unverifiedLazy */
            unverifiedLazy?: (boolean|null);

            /** FieldOptions deprecated */
            deprecated?: (boolean|null);

            /** FieldOptions weak */
            weak?: (boolean|null);

            /** FieldOptions debugRedact */
            debugRedact?: (boolean|null);

            /** FieldOptions retention */
            retention?: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention|null);

            /** FieldOptions targets */
            targets?: (google.protobuf.FieldOptions.OptionTargetType[]|null);

            /** FieldOptions editionDefaults */
            editionDefaults?: (google.protobuf.FieldOptions.IEditionDefault[]|null);

            /** FieldOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** FieldOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FieldOptions .google.api.fieldBehavior */
            ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null);

            /** FieldOptions .google.api.resourceReference */
            ".google.api.resourceReference"?: (google.api.IResourceReference|null);
        }

        /** Represents a FieldOptions. */
        class FieldOptions implements IFieldOptions {

            /**
             * Constructs a new FieldOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldOptions);

            /** FieldOptions ctype. */
            public ctype: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType);

            /** FieldOptions packed. */
            public packed: boolean;

            /** FieldOptions jstype. */
            public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType);

            /** FieldOptions lazy. */
            public lazy: boolean;

            /** FieldOptions unverifiedLazy. */
            public unverifiedLazy: boolean;

            /** FieldOptions deprecated. */
            public deprecated: boolean;

            /** FieldOptions weak. */
            public weak: boolean;

            /** FieldOptions debugRedact. */
            public debugRedact: boolean;

            /** FieldOptions retention. */
            public retention: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention);

            /** FieldOptions targets. */
            public targets: google.protobuf.FieldOptions.OptionTargetType[];

            /** FieldOptions editionDefaults. */
            public editionDefaults: google.protobuf.FieldOptions.IEditionDefault[];

            /** FieldOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** FieldOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FieldOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldOptions instance
             */
            public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions;

            /**
             * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions;

            /**
             * Verifies a FieldOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions;

            /**
             * Creates a plain object from a FieldOptions message. Also converts values to other types if specified.
             * @param message FieldOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldOptions {

            /** CType enum. */
            enum CType {
                STRING = 0,
                CORD = 1,
                STRING_PIECE = 2
            }

            /** JSType enum. */
            enum JSType {
                JS_NORMAL = 0,
                JS_STRING = 1,
                JS_NUMBER = 2
            }

            /** OptionRetention enum. */
            enum OptionRetention {
                RETENTION_UNKNOWN = 0,
                RETENTION_RUNTIME = 1,
                RETENTION_SOURCE = 2
            }

            /** OptionTargetType enum. */
            enum OptionTargetType {
                TARGET_TYPE_UNKNOWN = 0,
                TARGET_TYPE_FILE = 1,
                TARGET_TYPE_EXTENSION_RANGE = 2,
                TARGET_TYPE_MESSAGE = 3,
                TARGET_TYPE_FIELD = 4,
                TARGET_TYPE_ONEOF = 5,
                TARGET_TYPE_ENUM = 6,
                TARGET_TYPE_ENUM_ENTRY = 7,
                TARGET_TYPE_SERVICE = 8,
                TARGET_TYPE_METHOD = 9
            }

            /** Properties of an EditionDefault. */
            interface IEditionDefault {

                /** EditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** EditionDefault value */
                value?: (string|null);
            }

            /** Represents an EditionDefault. */
            class EditionDefault implements IEditionDefault {

                /**
                 * Constructs a new EditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FieldOptions.IEditionDefault);

                /** EditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** EditionDefault value. */
                public value: string;

                /**
                 * Creates a new EditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EditionDefault instance
                 */
                public static create(properties?: google.protobuf.FieldOptions.IEditionDefault): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Encodes the specified EditionDefault message. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Verifies an EditionDefault message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Creates a plain object from an EditionDefault message. Also converts values to other types if specified.
                 * @param message EditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FieldOptions.EditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EditionDefault
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an OneofOptions. */
        interface IOneofOptions {

            /** OneofOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** OneofOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an OneofOptions. */
        class OneofOptions implements IOneofOptions {

            /**
             * Constructs a new OneofOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofOptions);

            /** OneofOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** OneofOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new OneofOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofOptions instance
             */
            public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions;

            /**
             * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofOptions;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofOptions;

            /**
             * Verifies an OneofOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions;

            /**
             * Creates a plain object from an OneofOptions message. Also converts values to other types if specified.
             * @param message OneofOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumOptions. */
        interface IEnumOptions {

            /** EnumOptions allowAlias */
            allowAlias?: (boolean|null);

            /** EnumOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** EnumOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** EnumOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumOptions. */
        class EnumOptions implements IEnumOptions {

            /**
             * Constructs a new EnumOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumOptions);

            /** EnumOptions allowAlias. */
            public allowAlias: boolean;

            /** EnumOptions deprecated. */
            public deprecated: boolean;

            /** EnumOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** EnumOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** EnumOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumOptions instance
             */
            public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions;

            /**
             * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumOptions;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumOptions;

            /**
             * Verifies an EnumOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions;

            /**
             * Creates a plain object from an EnumOptions message. Also converts values to other types if specified.
             * @param message EnumOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumValueOptions. */
        interface IEnumValueOptions {

            /** EnumValueOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumValueOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact */
            debugRedact?: (boolean|null);

            /** EnumValueOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumValueOptions. */
        class EnumValueOptions implements IEnumValueOptions {

            /**
             * Constructs a new EnumValueOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueOptions);

            /** EnumValueOptions deprecated. */
            public deprecated: boolean;

            /** EnumValueOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact. */
            public debugRedact: boolean;

            /** EnumValueOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumValueOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueOptions instance
             */
            public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions;

            /**
             * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueOptions;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueOptions;

            /**
             * Verifies an EnumValueOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions;

            /**
             * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified.
             * @param message EnumValueOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceOptions. */
        interface IServiceOptions {

            /** ServiceOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** ServiceOptions deprecated */
            deprecated?: (boolean|null);

            /** ServiceOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ServiceOptions .google.api.defaultHost */
            ".google.api.defaultHost"?: (string|null);

            /** ServiceOptions .google.api.oauthScopes */
            ".google.api.oauthScopes"?: (string|null);
        }

        /** Represents a ServiceOptions. */
        class ServiceOptions implements IServiceOptions {

            /**
             * Constructs a new ServiceOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceOptions);

            /** ServiceOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** ServiceOptions deprecated. */
            public deprecated: boolean;

            /** ServiceOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new ServiceOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceOptions instance
             */
            public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions;

            /**
             * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceOptions;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceOptions;

            /**
             * Verifies a ServiceOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions;

            /**
             * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified.
             * @param message ServiceOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodOptions. */
        interface IMethodOptions {

            /** MethodOptions deprecated */
            deprecated?: (boolean|null);

            /** MethodOptions idempotencyLevel */
            idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel|null);

            /** MethodOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** MethodOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MethodOptions .google.api.http */
            ".google.api.http"?: (google.api.IHttpRule|null);

            /** MethodOptions .google.api.methodSignature */
            ".google.api.methodSignature"?: (string[]|null);

            /** MethodOptions .google.longrunning.operationInfo */
            ".google.longrunning.operationInfo"?: (google.longrunning.IOperationInfo|null);
        }

        /** Represents a MethodOptions. */
        class MethodOptions implements IMethodOptions {

            /**
             * Constructs a new MethodOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodOptions);

            /** MethodOptions deprecated. */
            public deprecated: boolean;

            /** MethodOptions idempotencyLevel. */
            public idempotencyLevel: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel);

            /** MethodOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** MethodOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MethodOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodOptions instance
             */
            public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions;

            /**
             * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodOptions;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodOptions;

            /**
             * Verifies a MethodOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions;

            /**
             * Creates a plain object from a MethodOptions message. Also converts values to other types if specified.
             * @param message MethodOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodOptions {

            /** IdempotencyLevel enum. */
            enum IdempotencyLevel {
                IDEMPOTENCY_UNKNOWN = 0,
                NO_SIDE_EFFECTS = 1,
                IDEMPOTENT = 2
            }
        }

        /** Properties of an UninterpretedOption. */
        interface IUninterpretedOption {

            /** UninterpretedOption name */
            name?: (google.protobuf.UninterpretedOption.INamePart[]|null);

            /** UninterpretedOption identifierValue */
            identifierValue?: (string|null);

            /** UninterpretedOption positiveIntValue */
            positiveIntValue?: (number|Long|string|null);

            /** UninterpretedOption negativeIntValue */
            negativeIntValue?: (number|Long|string|null);

            /** UninterpretedOption doubleValue */
            doubleValue?: (number|null);

            /** UninterpretedOption stringValue */
            stringValue?: (Uint8Array|string|null);

            /** UninterpretedOption aggregateValue */
            aggregateValue?: (string|null);
        }

        /** Represents an UninterpretedOption. */
        class UninterpretedOption implements IUninterpretedOption {

            /**
             * Constructs a new UninterpretedOption.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IUninterpretedOption);

            /** UninterpretedOption name. */
            public name: google.protobuf.UninterpretedOption.INamePart[];

            /** UninterpretedOption identifierValue. */
            public identifierValue: string;

            /** UninterpretedOption positiveIntValue. */
            public positiveIntValue: (number|Long|string);

            /** UninterpretedOption negativeIntValue. */
            public negativeIntValue: (number|Long|string);

            /** UninterpretedOption doubleValue. */
            public doubleValue: number;

            /** UninterpretedOption stringValue. */
            public stringValue: (Uint8Array|string);

            /** UninterpretedOption aggregateValue. */
            public aggregateValue: string;

            /**
             * Creates a new UninterpretedOption instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UninterpretedOption instance
             */
            public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption;

            /**
             * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption;

            /**
             * Verifies an UninterpretedOption message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UninterpretedOption
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption;

            /**
             * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified.
             * @param message UninterpretedOption
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UninterpretedOption to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for UninterpretedOption
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace UninterpretedOption {

            /** Properties of a NamePart. */
            interface INamePart {

                /** NamePart namePart */
                namePart: string;

                /** NamePart isExtension */
                isExtension: boolean;
            }

            /** Represents a NamePart. */
            class NamePart implements INamePart {

                /**
                 * Constructs a new NamePart.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.UninterpretedOption.INamePart);

                /** NamePart namePart. */
                public namePart: string;

                /** NamePart isExtension. */
                public isExtension: boolean;

                /**
                 * Creates a new NamePart instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NamePart instance
                 */
                public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NamePart message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Decodes a NamePart message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Verifies a NamePart message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a NamePart message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NamePart
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Creates a plain object from a NamePart message. Also converts values to other types if specified.
                 * @param message NamePart
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NamePart to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NamePart
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a FeatureSet. */
        interface IFeatureSet {

            /** FeatureSet fieldPresence */
            fieldPresence?: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence|null);

            /** FeatureSet enumType */
            enumType?: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType|null);

            /** FeatureSet repeatedFieldEncoding */
            repeatedFieldEncoding?: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding|null);

            /** FeatureSet utf8Validation */
            utf8Validation?: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation|null);

            /** FeatureSet messageEncoding */
            messageEncoding?: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding|null);

            /** FeatureSet jsonFormat */
            jsonFormat?: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat|null);
        }

        /** Represents a FeatureSet. */
        class FeatureSet implements IFeatureSet {

            /**
             * Constructs a new FeatureSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSet);

            /** FeatureSet fieldPresence. */
            public fieldPresence: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence);

            /** FeatureSet enumType. */
            public enumType: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType);

            /** FeatureSet repeatedFieldEncoding. */
            public repeatedFieldEncoding: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding);

            /** FeatureSet utf8Validation. */
            public utf8Validation: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation);

            /** FeatureSet messageEncoding. */
            public messageEncoding: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding);

            /** FeatureSet jsonFormat. */
            public jsonFormat: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat);

            /**
             * Creates a new FeatureSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSet instance
             */
            public static create(properties?: google.protobuf.IFeatureSet): google.protobuf.FeatureSet;

            /**
             * Encodes the specified FeatureSet message. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSet message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSet;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSet;

            /**
             * Verifies a FeatureSet message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FeatureSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet;

            /**
             * Creates a plain object from a FeatureSet message. Also converts values to other types if specified.
             * @param message FeatureSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSet {

            /** FieldPresence enum. */
            enum FieldPresence {
                FIELD_PRESENCE_UNKNOWN = 0,
                EXPLICIT = 1,
                IMPLICIT = 2,
                LEGACY_REQUIRED = 3
            }

            /** EnumType enum. */
            enum EnumType {
                ENUM_TYPE_UNKNOWN = 0,
                OPEN = 1,
                CLOSED = 2
            }

            /** RepeatedFieldEncoding enum. */
            enum RepeatedFieldEncoding {
                REPEATED_FIELD_ENCODING_UNKNOWN = 0,
                PACKED = 1,
                EXPANDED = 2
            }

            /** Utf8Validation enum. */
            enum Utf8Validation {
                UTF8_VALIDATION_UNKNOWN = 0,
                VERIFY = 2,
                NONE = 3
            }

            /** MessageEncoding enum. */
            enum MessageEncoding {
                MESSAGE_ENCODING_UNKNOWN = 0,
                LENGTH_PREFIXED = 1,
                DELIMITED = 2
            }

            /** JsonFormat enum. */
            enum JsonFormat {
                JSON_FORMAT_UNKNOWN = 0,
                ALLOW = 1,
                LEGACY_BEST_EFFORT = 2
            }
        }

        /** Properties of a FeatureSetDefaults. */
        interface IFeatureSetDefaults {

            /** FeatureSetDefaults defaults */
            defaults?: (google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[]|null);

            /** FeatureSetDefaults minimumEdition */
            minimumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

            /** FeatureSetDefaults maximumEdition */
            maximumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);
        }

        /** Represents a FeatureSetDefaults. */
        class FeatureSetDefaults implements IFeatureSetDefaults {

            /**
             * Constructs a new FeatureSetDefaults.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSetDefaults);

            /** FeatureSetDefaults defaults. */
            public defaults: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[];

            /** FeatureSetDefaults minimumEdition. */
            public minimumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /** FeatureSetDefaults maximumEdition. */
            public maximumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * Creates a new FeatureSetDefaults instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSetDefaults instance
             */
            public static create(properties?: google.protobuf.IFeatureSetDefaults): google.protobuf.FeatureSetDefaults;

            /**
             * Encodes the specified FeatureSetDefaults message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSetDefaults message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSetDefaults;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSetDefaults;

            /**
             * Verifies a FeatureSetDefaults message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FeatureSetDefaults message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSetDefaults
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults;

            /**
             * Creates a plain object from a FeatureSetDefaults message. Also converts values to other types if specified.
             * @param message FeatureSetDefaults
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSetDefaults, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSetDefaults to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSetDefaults
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSetDefaults {

            /** Properties of a FeatureSetEditionDefault. */
            interface IFeatureSetEditionDefault {

                /** FeatureSetEditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** FeatureSetEditionDefault features */
                features?: (google.protobuf.IFeatureSet|null);
            }

            /** Represents a FeatureSetEditionDefault. */
            class FeatureSetEditionDefault implements IFeatureSetEditionDefault {

                /**
                 * Constructs a new FeatureSetEditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault);

                /** FeatureSetEditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** FeatureSetEditionDefault features. */
                public features?: (google.protobuf.IFeatureSet|null);

                /**
                 * Creates a new FeatureSetEditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FeatureSetEditionDefault instance
                 */
                public static create(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Encodes the specified FeatureSetEditionDefault message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FeatureSetEditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Verifies a FeatureSetEditionDefault message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a FeatureSetEditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FeatureSetEditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Creates a plain object from a FeatureSetEditionDefault message. Also converts values to other types if specified.
                 * @param message FeatureSetEditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FeatureSetEditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FeatureSetEditionDefault
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a SourceCodeInfo. */
        interface ISourceCodeInfo {

            /** SourceCodeInfo location */
            location?: (google.protobuf.SourceCodeInfo.ILocation[]|null);
        }

        /** Represents a SourceCodeInfo. */
        class SourceCodeInfo implements ISourceCodeInfo {

            /**
             * Constructs a new SourceCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ISourceCodeInfo);

            /** SourceCodeInfo location. */
            public location: google.protobuf.SourceCodeInfo.ILocation[];

            /**
             * Creates a new SourceCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SourceCodeInfo instance
             */
            public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo;

            /**
             * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo;

            /**
             * Verifies a SourceCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SourceCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo;

            /**
             * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified.
             * @param message SourceCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SourceCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for SourceCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace SourceCodeInfo {

            /** Properties of a Location. */
            interface ILocation {

                /** Location path */
                path?: (number[]|null);

                /** Location span */
                span?: (number[]|null);

                /** Location leadingComments */
                leadingComments?: (string|null);

                /** Location trailingComments */
                trailingComments?: (string|null);

                /** Location leadingDetachedComments */
                leadingDetachedComments?: (string[]|null);
            }

            /** Represents a Location. */
            class Location implements ILocation {

                /**
                 * Constructs a new Location.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.SourceCodeInfo.ILocation);

                /** Location path. */
                public path: number[];

                /** Location span. */
                public span: number[];

                /** Location leadingComments. */
                public leadingComments: string;

                /** Location trailingComments. */
                public trailingComments: string;

                /** Location leadingDetachedComments. */
                public leadingDetachedComments: string[];

                /**
                 * Creates a new Location instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Location instance
                 */
                public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Location message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Decodes a Location message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Verifies a Location message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Location message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Location
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Creates a plain object from a Location message. Also converts values to other types if specified.
                 * @param message Location
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Location to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Location
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a GeneratedCodeInfo. */
        interface IGeneratedCodeInfo {

            /** GeneratedCodeInfo annotation */
            annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null);
        }

        /** Represents a GeneratedCodeInfo. */
        class GeneratedCodeInfo implements IGeneratedCodeInfo {

            /**
             * Constructs a new GeneratedCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IGeneratedCodeInfo);

            /** GeneratedCodeInfo annotation. */
            public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[];

            /**
             * Creates a new GeneratedCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GeneratedCodeInfo instance
             */
            public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo;

            /**
             * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo;

            /**
             * Verifies a GeneratedCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GeneratedCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo;

            /**
             * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified.
             * @param message GeneratedCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GeneratedCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GeneratedCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace GeneratedCodeInfo {

            /** Properties of an Annotation. */
            interface IAnnotation {

                /** Annotation path */
                path?: (number[]|null);

                /** Annotation sourceFile */
                sourceFile?: (string|null);

                /** Annotation begin */
                begin?: (number|null);

                /** Annotation end */
                end?: (number|null);

                /** Annotation semantic */
                semantic?: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic|null);
            }

            /** Represents an Annotation. */
            class Annotation implements IAnnotation {

                /**
                 * Constructs a new Annotation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation);

                /** Annotation path. */
                public path: number[];

                /** Annotation sourceFile. */
                public sourceFile: string;

                /** Annotation begin. */
                public begin: number;

                /** Annotation end. */
                public end: number;

                /** Annotation semantic. */
                public semantic: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic);

                /**
                 * Creates a new Annotation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Annotation instance
                 */
                public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an Annotation message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Decodes an Annotation message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Verifies an Annotation message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an Annotation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Annotation
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Creates a plain object from an Annotation message. Also converts values to other types if specified.
                 * @param message Annotation
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Annotation to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Annotation
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Annotation {

                /** Semantic enum. */
                enum Semantic {
                    NONE = 0,
                    SET = 1,
                    ALIAS = 2
                }
            }
        }

        /** Properties of a Duration. */
        interface IDuration {

            /** Duration seconds */
            seconds?: (number|Long|string|null);

            /** Duration nanos */
            nanos?: (number|null);
        }

        /** Represents a Duration. */
        class Duration implements IDuration {

            /**
             * Constructs a new Duration.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDuration);

            /** Duration seconds. */
            public seconds: (number|Long|string);

            /** Duration nanos. */
            public nanos: number;

            /**
             * Creates a new Duration instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Duration instance
             */
            public static create(properties?: google.protobuf.IDuration): google.protobuf.Duration;

            /**
             * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
             * @param message Duration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
             * @param message Duration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Duration message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Duration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Duration;

            /**
             * Decodes a Duration message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Duration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Duration;

            /**
             * Verifies a Duration message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Duration message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Duration
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Duration;

            /**
             * Creates a plain object from a Duration message. Also converts values to other types if specified.
             * @param message Duration
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Duration, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Duration to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Duration
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Timestamp. */
        interface ITimestamp {

            /** Timestamp seconds */
            seconds?: (number|Long|string|null);

            /** Timestamp nanos */
            nanos?: (number|null);
        }

        /** Represents a Timestamp. */
        class Timestamp implements ITimestamp {

            /**
             * Constructs a new Timestamp.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ITimestamp);

            /** Timestamp seconds. */
            public seconds: (number|Long|string);

            /** Timestamp nanos. */
            public nanos: number;

            /**
             * Creates a new Timestamp instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Timestamp instance
             */
            public static create(properties?: google.protobuf.ITimestamp): google.protobuf.Timestamp;

            /**
             * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
             * @param message Timestamp message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
             * @param message Timestamp message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Timestamp message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Timestamp
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Timestamp;

            /**
             * Decodes a Timestamp message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Timestamp
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Timestamp;

            /**
             * Verifies a Timestamp message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Timestamp
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Timestamp;

            /**
             * Creates a plain object from a Timestamp message. Also converts values to other types if specified.
             * @param message Timestamp
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Timestamp to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Timestamp
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Any. */
        interface IAny {

            /** Any type_url */
            type_url?: (string|null);

            /** Any value */
            value?: (Uint8Array|string|null);
        }

        /** Represents an Any. */
        class Any implements IAny {

            /**
             * Constructs a new Any.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IAny);

            /** Any type_url. */
            public type_url: string;

            /** Any value. */
            public value: (Uint8Array|string);

            /**
             * Creates a new Any instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Any instance
             */
            public static create(properties?: google.protobuf.IAny): google.protobuf.Any;

            /**
             * Encodes the specified Any message. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Any message, length delimited. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Any message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Any;

            /**
             * Decodes an Any message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Any;

            /**
             * Verifies an Any message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Any message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Any
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Any;

            /**
             * Creates a plain object from an Any message. Also converts values to other types if specified.
             * @param message Any
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Any, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Any to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Any
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldMask. */
        interface IFieldMask {

            /** FieldMask paths */
            paths?: (string[]|null);
        }

        /** Represents a FieldMask. */
        class FieldMask implements IFieldMask {

            /**
             * Constructs a new FieldMask.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldMask);

            /** FieldMask paths. */
            public paths: string[];

            /**
             * Creates a new FieldMask instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldMask instance
             */
            public static create(properties?: google.protobuf.IFieldMask): google.protobuf.FieldMask;

            /**
             * Encodes the specified FieldMask message. Does not implicitly {@link google.protobuf.FieldMask.verify|verify} messages.
             * @param message FieldMask message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldMask, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldMask message, length delimited. Does not implicitly {@link google.protobuf.FieldMask.verify|verify} messages.
             * @param message FieldMask message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldMask, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldMask message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldMask
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldMask;

            /**
             * Decodes a FieldMask message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldMask
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldMask;

            /**
             * Verifies a FieldMask message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldMask message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldMask
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldMask;

            /**
             * Creates a plain object from a FieldMask message. Also converts values to other types if specified.
             * @param message FieldMask
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldMask, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldMask to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldMask
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Empty. */
        interface IEmpty {
        }

        /** Represents an Empty. */
        class Empty implements IEmpty {

            /**
             * Constructs a new Empty.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEmpty);

            /**
             * Creates a new Empty instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Empty instance
             */
            public static create(properties?: google.protobuf.IEmpty): google.protobuf.Empty;

            /**
             * Encodes the specified Empty message. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Empty message, length delimited. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Empty message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Empty;

            /**
             * Decodes an Empty message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Empty;

            /**
             * Verifies an Empty message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Empty message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Empty
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Empty;

            /**
             * Creates a plain object from an Empty message. Also converts values to other types if specified.
             * @param message Empty
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Empty, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Empty to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Empty
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace longrunning. */
    namespace longrunning {

        /** Represents an Operations */
        class Operations extends $protobuf.rpc.Service {

            /**
             * Constructs a new Operations service.
             * @param rpcImpl RPC implementation
             * @param [requestDelimited=false] Whether requests are length-delimited
             * @param [responseDelimited=false] Whether responses are length-delimited
             */
            constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

            /**
             * Creates new Operations service using the specified rpc implementation.
             * @param rpcImpl RPC implementation
             * @param [requestDelimited=false] Whether requests are length-delimited
             * @param [responseDelimited=false] Whether responses are length-delimited
             * @returns RPC service. Useful where requests and/or responses are streamed.
             */
            public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): Operations;

            /**
             * Calls ListOperations.
             * @param request ListOperationsRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and ListOperationsResponse
             */
            public listOperations(request: google.longrunning.IListOperationsRequest, callback: google.longrunning.Operations.ListOperationsCallback): void;

            /**
             * Calls ListOperations.
             * @param request ListOperationsRequest message or plain object
             * @returns Promise
             */
            public listOperations(request: google.longrunning.IListOperationsRequest): Promise<google.longrunning.ListOperationsResponse>;

            /**
             * Calls GetOperation.
             * @param request GetOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Operation
             */
            public getOperation(request: google.longrunning.IGetOperationRequest, callback: google.longrunning.Operations.GetOperationCallback): void;

            /**
             * Calls GetOperation.
             * @param request GetOperationRequest message or plain object
             * @returns Promise
             */
            public getOperation(request: google.longrunning.IGetOperationRequest): Promise<google.longrunning.Operation>;

            /**
             * Calls DeleteOperation.
             * @param request DeleteOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Empty
             */
            public deleteOperation(request: google.longrunning.IDeleteOperationRequest, callback: google.longrunning.Operations.DeleteOperationCallback): void;

            /**
             * Calls DeleteOperation.
             * @param request DeleteOperationRequest message or plain object
             * @returns Promise
             */
            public deleteOperation(request: google.longrunning.IDeleteOperationRequest): Promise<google.protobuf.Empty>;

            /**
             * Calls CancelOperation.
             * @param request CancelOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Empty
             */
            public cancelOperation(request: google.longrunning.ICancelOperationRequest, callback: google.longrunning.Operations.CancelOperationCallback): void;

            /**
             * Calls CancelOperation.
             * @param request CancelOperationRequest message or plain object
             * @returns Promise
             */
            public cancelOperation(request: google.longrunning.ICancelOperationRequest): Promise<google.protobuf.Empty>;

            /**
             * Calls WaitOperation.
             * @param request WaitOperationRequest message or plain object
             * @param callback Node-style callback called with the error, if any, and Operation
             */
            public waitOperation(request: google.longrunning.IWaitOperationRequest, callback: google.longrunning.Operations.WaitOperationCallback): void;

            /**
             * Calls WaitOperation.
             * @param request WaitOperationRequest message or plain object
             * @returns Promise
             */
            public waitOperation(request: google.longrunning.IWaitOperationRequest): Promise<google.longrunning.Operation>;
        }

        namespace Operations {

            /**
             * Callback as used by {@link google.longrunning.Operations|listOperations}.
             * @param error Error, if any
             * @param [response] ListOperationsResponse
             */
            type ListOperationsCallback = (error: (Error|null), response?: google.longrunning.ListOperationsResponse) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|getOperation}.
             * @param error Error, if any
             * @param [response] Operation
             */
            type GetOperationCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|deleteOperation}.
             * @param error Error, if any
             * @param [response] Empty
             */
            type DeleteOperationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|cancelOperation}.
             * @param error Error, if any
             * @param [response] Empty
             */
            type CancelOperationCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

            /**
             * Callback as used by {@link google.longrunning.Operations|waitOperation}.
             * @param error Error, if any
             * @param [response] Operation
             */
            type WaitOperationCallback = (error: (Error|null), response?: google.longrunning.Operation) => void;
        }

        /** Properties of an Operation. */
        interface IOperation {

            /** Operation name */
            name?: (string|null);

            /** Operation metadata */
            metadata?: (google.protobuf.IAny|null);

            /** Operation done */
            done?: (boolean|null);

            /** Operation error */
            error?: (google.rpc.IStatus|null);

            /** Operation response */
            response?: (google.protobuf.IAny|null);
        }

        /** Represents an Operation. */
        class Operation implements IOperation {

            /**
             * Constructs a new Operation.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IOperation);

            /** Operation name. */
            public name: string;

            /** Operation metadata. */
            public metadata?: (google.protobuf.IAny|null);

            /** Operation done. */
            public done: boolean;

            /** Operation error. */
            public error?: (google.rpc.IStatus|null);

            /** Operation response. */
            public response?: (google.protobuf.IAny|null);

            /** Operation result. */
            public result?: ("error"|"response");

            /**
             * Creates a new Operation instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Operation instance
             */
            public static create(properties?: google.longrunning.IOperation): google.longrunning.Operation;

            /**
             * Encodes the specified Operation message. Does not implicitly {@link google.longrunning.Operation.verify|verify} messages.
             * @param message Operation message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Operation message, length delimited. Does not implicitly {@link google.longrunning.Operation.verify|verify} messages.
             * @param message Operation message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IOperation, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Operation message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Operation
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.Operation;

            /**
             * Decodes an Operation message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Operation
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.Operation;

            /**
             * Verifies an Operation message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Operation message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Operation
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.Operation;

            /**
             * Creates a plain object from an Operation message. Also converts values to other types if specified.
             * @param message Operation
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.Operation, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Operation to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Operation
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a GetOperationRequest. */
        interface IGetOperationRequest {

            /** GetOperationRequest name */
            name?: (string|null);
        }

        /** Represents a GetOperationRequest. */
        class GetOperationRequest implements IGetOperationRequest {

            /**
             * Constructs a new GetOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IGetOperationRequest);

            /** GetOperationRequest name. */
            public name: string;

            /**
             * Creates a new GetOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GetOperationRequest instance
             */
            public static create(properties?: google.longrunning.IGetOperationRequest): google.longrunning.GetOperationRequest;

            /**
             * Encodes the specified GetOperationRequest message. Does not implicitly {@link google.longrunning.GetOperationRequest.verify|verify} messages.
             * @param message GetOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GetOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.GetOperationRequest.verify|verify} messages.
             * @param message GetOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IGetOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GetOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GetOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.GetOperationRequest;

            /**
             * Decodes a GetOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GetOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.GetOperationRequest;

            /**
             * Verifies a GetOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GetOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GetOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.GetOperationRequest;

            /**
             * Creates a plain object from a GetOperationRequest message. Also converts values to other types if specified.
             * @param message GetOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.GetOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GetOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GetOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ListOperationsRequest. */
        interface IListOperationsRequest {

            /** ListOperationsRequest name */
            name?: (string|null);

            /** ListOperationsRequest filter */
            filter?: (string|null);

            /** ListOperationsRequest pageSize */
            pageSize?: (number|null);

            /** ListOperationsRequest pageToken */
            pageToken?: (string|null);
        }

        /** Represents a ListOperationsRequest. */
        class ListOperationsRequest implements IListOperationsRequest {

            /**
             * Constructs a new ListOperationsRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IListOperationsRequest);

            /** ListOperationsRequest name. */
            public name: string;

            /** ListOperationsRequest filter. */
            public filter: string;

            /** ListOperationsRequest pageSize. */
            public pageSize: number;

            /** ListOperationsRequest pageToken. */
            public pageToken: string;

            /**
             * Creates a new ListOperationsRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListOperationsRequest instance
             */
            public static create(properties?: google.longrunning.IListOperationsRequest): google.longrunning.ListOperationsRequest;

            /**
             * Encodes the specified ListOperationsRequest message. Does not implicitly {@link google.longrunning.ListOperationsRequest.verify|verify} messages.
             * @param message ListOperationsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListOperationsRequest message, length delimited. Does not implicitly {@link google.longrunning.ListOperationsRequest.verify|verify} messages.
             * @param message ListOperationsRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IListOperationsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListOperationsRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListOperationsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.ListOperationsRequest;

            /**
             * Decodes a ListOperationsRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListOperationsRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.ListOperationsRequest;

            /**
             * Verifies a ListOperationsRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListOperationsRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListOperationsRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.ListOperationsRequest;

            /**
             * Creates a plain object from a ListOperationsRequest message. Also converts values to other types if specified.
             * @param message ListOperationsRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.ListOperationsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListOperationsRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ListOperationsRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ListOperationsResponse. */
        interface IListOperationsResponse {

            /** ListOperationsResponse operations */
            operations?: (google.longrunning.IOperation[]|null);

            /** ListOperationsResponse nextPageToken */
            nextPageToken?: (string|null);
        }

        /** Represents a ListOperationsResponse. */
        class ListOperationsResponse implements IListOperationsResponse {

            /**
             * Constructs a new ListOperationsResponse.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IListOperationsResponse);

            /** ListOperationsResponse operations. */
            public operations: google.longrunning.IOperation[];

            /** ListOperationsResponse nextPageToken. */
            public nextPageToken: string;

            /**
             * Creates a new ListOperationsResponse instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ListOperationsResponse instance
             */
            public static create(properties?: google.longrunning.IListOperationsResponse): google.longrunning.ListOperationsResponse;

            /**
             * Encodes the specified ListOperationsResponse message. Does not implicitly {@link google.longrunning.ListOperationsResponse.verify|verify} messages.
             * @param message ListOperationsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ListOperationsResponse message, length delimited. Does not implicitly {@link google.longrunning.ListOperationsResponse.verify|verify} messages.
             * @param message ListOperationsResponse message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IListOperationsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ListOperationsResponse message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ListOperationsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.ListOperationsResponse;

            /**
             * Decodes a ListOperationsResponse message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ListOperationsResponse
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.ListOperationsResponse;

            /**
             * Verifies a ListOperationsResponse message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ListOperationsResponse message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ListOperationsResponse
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.ListOperationsResponse;

            /**
             * Creates a plain object from a ListOperationsResponse message. Also converts values to other types if specified.
             * @param message ListOperationsResponse
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.ListOperationsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ListOperationsResponse to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ListOperationsResponse
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CancelOperationRequest. */
        interface ICancelOperationRequest {

            /** CancelOperationRequest name */
            name?: (string|null);
        }

        /** Represents a CancelOperationRequest. */
        class CancelOperationRequest implements ICancelOperationRequest {

            /**
             * Constructs a new CancelOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.ICancelOperationRequest);

            /** CancelOperationRequest name. */
            public name: string;

            /**
             * Creates a new CancelOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CancelOperationRequest instance
             */
            public static create(properties?: google.longrunning.ICancelOperationRequest): google.longrunning.CancelOperationRequest;

            /**
             * Encodes the specified CancelOperationRequest message. Does not implicitly {@link google.longrunning.CancelOperationRequest.verify|verify} messages.
             * @param message CancelOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CancelOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.CancelOperationRequest.verify|verify} messages.
             * @param message CancelOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.ICancelOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CancelOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CancelOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.CancelOperationRequest;

            /**
             * Decodes a CancelOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CancelOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.CancelOperationRequest;

            /**
             * Verifies a CancelOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CancelOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CancelOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.CancelOperationRequest;

            /**
             * Creates a plain object from a CancelOperationRequest message. Also converts values to other types if specified.
             * @param message CancelOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.CancelOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CancelOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CancelOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DeleteOperationRequest. */
        interface IDeleteOperationRequest {

            /** DeleteOperationRequest name */
            name?: (string|null);
        }

        /** Represents a DeleteOperationRequest. */
        class DeleteOperationRequest implements IDeleteOperationRequest {

            /**
             * Constructs a new DeleteOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IDeleteOperationRequest);

            /** DeleteOperationRequest name. */
            public name: string;

            /**
             * Creates a new DeleteOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DeleteOperationRequest instance
             */
            public static create(properties?: google.longrunning.IDeleteOperationRequest): google.longrunning.DeleteOperationRequest;

            /**
             * Encodes the specified DeleteOperationRequest message. Does not implicitly {@link google.longrunning.DeleteOperationRequest.verify|verify} messages.
             * @param message DeleteOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IDeleteOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DeleteOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.DeleteOperationRequest.verify|verify} messages.
             * @param message DeleteOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IDeleteOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DeleteOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DeleteOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.DeleteOperationRequest;

            /**
             * Decodes a DeleteOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DeleteOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.DeleteOperationRequest;

            /**
             * Verifies a DeleteOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DeleteOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DeleteOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.DeleteOperationRequest;

            /**
             * Creates a plain object from a DeleteOperationRequest message. Also converts values to other types if specified.
             * @param message DeleteOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.DeleteOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DeleteOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DeleteOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a WaitOperationRequest. */
        interface IWaitOperationRequest {

            /** WaitOperationRequest name */
            name?: (string|null);

            /** WaitOperationRequest timeout */
            timeout?: (google.protobuf.IDuration|null);
        }

        /** Represents a WaitOperationRequest. */
        class WaitOperationRequest implements IWaitOperationRequest {

            /**
             * Constructs a new WaitOperationRequest.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IWaitOperationRequest);

            /** WaitOperationRequest name. */
            public name: string;

            /** WaitOperationRequest timeout. */
            public timeout?: (google.protobuf.IDuration|null);

            /**
             * Creates a new WaitOperationRequest instance using the specified properties.
             * @param [properties] Properties to set
             * @returns WaitOperationRequest instance
             */
            public static create(properties?: google.longrunning.IWaitOperationRequest): google.longrunning.WaitOperationRequest;

            /**
             * Encodes the specified WaitOperationRequest message. Does not implicitly {@link google.longrunning.WaitOperationRequest.verify|verify} messages.
             * @param message WaitOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IWaitOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified WaitOperationRequest message, length delimited. Does not implicitly {@link google.longrunning.WaitOperationRequest.verify|verify} messages.
             * @param message WaitOperationRequest message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IWaitOperationRequest, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a WaitOperationRequest message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns WaitOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.WaitOperationRequest;

            /**
             * Decodes a WaitOperationRequest message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns WaitOperationRequest
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.WaitOperationRequest;

            /**
             * Verifies a WaitOperationRequest message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a WaitOperationRequest message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns WaitOperationRequest
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.WaitOperationRequest;

            /**
             * Creates a plain object from a WaitOperationRequest message. Also converts values to other types if specified.
             * @param message WaitOperationRequest
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.WaitOperationRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this WaitOperationRequest to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for WaitOperationRequest
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an OperationInfo. */
        interface IOperationInfo {

            /** OperationInfo responseType */
            responseType?: (string|null);

            /** OperationInfo metadataType */
            metadataType?: (string|null);
        }

        /** Represents an OperationInfo. */
        class OperationInfo implements IOperationInfo {

            /**
             * Constructs a new OperationInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.longrunning.IOperationInfo);

            /** OperationInfo responseType. */
            public responseType: string;

            /** OperationInfo metadataType. */
            public metadataType: string;

            /**
             * Creates a new OperationInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OperationInfo instance
             */
            public static create(properties?: google.longrunning.IOperationInfo): google.longrunning.OperationInfo;

            /**
             * Encodes the specified OperationInfo message. Does not implicitly {@link google.longrunning.OperationInfo.verify|verify} messages.
             * @param message OperationInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.longrunning.IOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OperationInfo message, length delimited. Does not implicitly {@link google.longrunning.OperationInfo.verify|verify} messages.
             * @param message OperationInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.longrunning.IOperationInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OperationInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OperationInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.longrunning.OperationInfo;

            /**
             * Decodes an OperationInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OperationInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.longrunning.OperationInfo;

            /**
             * Verifies an OperationInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OperationInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OperationInfo
             */
            public static fromObject(object: { [k: string]: any }): google.longrunning.OperationInfo;

            /**
             * Creates a plain object from an OperationInfo message. Also converts values to other types if specified.
             * @param message OperationInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.longrunning.OperationInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OperationInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OperationInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace rpc. */
    namespace rpc {

        /** Properties of a Status. */
        interface IStatus {

            /** Status code */
            code?: (number|null);

            /** Status message */
            message?: (string|null);

            /** Status details */
            details?: (google.protobuf.IAny[]|null);
        }

        /** Represents a Status. */
        class Status implements IStatus {

            /**
             * Constructs a new Status.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.rpc.IStatus);

            /** Status code. */
            public code: number;

            /** Status message. */
            public message: string;

            /** Status details. */
            public details: google.protobuf.IAny[];

            /**
             * Creates a new Status instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Status instance
             */
            public static create(properties?: google.rpc.IStatus): google.rpc.Status;

            /**
             * Encodes the specified Status message. Does not implicitly {@link google.rpc.Status.verify|verify} messages.
             * @param message Status message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.rpc.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Status message, length delimited. Does not implicitly {@link google.rpc.Status.verify|verify} messages.
             * @param message Status message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.rpc.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Status message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Status
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.rpc.Status;

            /**
             * Decodes a Status message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Status
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.rpc.Status;

            /**
             * Verifies a Status message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Status message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Status
             */
            public static fromObject(object: { [k: string]: any }): google.rpc.Status;

            /**
             * Creates a plain object from a Status message. Also converts values to other types if specified.
             * @param message Status
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.rpc.Status, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Status to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Status
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace type. */
    namespace type {

        /** Properties of a Date. */
        interface IDate {

            /** Date year */
            year?: (number|null);

            /** Date month */
            month?: (number|null);

            /** Date day */
            day?: (number|null);
        }

        /** Represents a Date. */
        class Date implements IDate {

            /**
             * Constructs a new Date.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.type.IDate);

            /** Date year. */
            public year: number;

            /** Date month. */
            public month: number;

            /** Date day. */
            public day: number;

            /**
             * Creates a new Date instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Date instance
             */
            public static create(properties?: google.type.IDate): google.type.Date;

            /**
             * Encodes the specified Date message. Does not implicitly {@link google.type.Date.verify|verify} messages.
             * @param message Date message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.type.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Date message, length delimited. Does not implicitly {@link google.type.Date.verify|verify} messages.
             * @param message Date message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.type.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Date message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Date
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.type.Date;

            /**
             * Decodes a Date message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Date
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.type.Date;

            /**
             * Verifies a Date message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Date message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Date
             */
            public static fromObject(object: { [k: string]: any }): google.type.Date;

            /**
             * Creates a plain object from a Date message. Also converts values to other types if specified.
             * @param message Date
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.type.Date, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Date to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Date
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** DayOfWeek enum. */
        enum DayOfWeek {
            DAY_OF_WEEK_UNSPECIFIED = 0,
            MONDAY = 1,
            TUESDAY = 2,
            WEDNESDAY = 3,
            THURSDAY = 4,
            FRIDAY = 5,
            SATURDAY = 6,
            SUNDAY = 7
        }

        /** Properties of a TimeOfDay. */
        interface ITimeOfDay {

            /** TimeOfDay hours */
            hours?: (number|null);

            /** TimeOfDay minutes */
            minutes?: (number|null);

            /** TimeOfDay seconds */
            seconds?: (number|null);

            /** TimeOfDay nanos */
            nanos?: (number|null);
        }

        /** Represents a TimeOfDay. */
        class TimeOfDay implements ITimeOfDay {

            /**
             * Constructs a new TimeOfDay.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.type.ITimeOfDay);

            /** TimeOfDay hours. */
            public hours: number;

            /** TimeOfDay minutes. */
            public minutes: number;

            /** TimeOfDay seconds. */
            public seconds: number;

            /** TimeOfDay nanos. */
            public nanos: number;

            /**
             * Creates a new TimeOfDay instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TimeOfDay instance
             */
            public static create(properties?: google.type.ITimeOfDay): google.type.TimeOfDay;

            /**
             * Encodes the specified TimeOfDay message. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages.
             * @param message TimeOfDay message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TimeOfDay message, length delimited. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages.
             * @param message TimeOfDay message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TimeOfDay message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TimeOfDay
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.type.TimeOfDay;

            /**
             * Decodes a TimeOfDay message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TimeOfDay
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.type.TimeOfDay;

            /**
             * Verifies a TimeOfDay message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TimeOfDay message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TimeOfDay
             */
            public static fromObject(object: { [k: string]: any }): google.type.TimeOfDay;

            /**
             * Creates a plain object from a TimeOfDay message. Also converts values to other types if specified.
             * @param message TimeOfDay
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.type.TimeOfDay, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TimeOfDay to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for TimeOfDay
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }
}
